程序开发中的术语,如IDE,OOP等等
我们在开发程序过程中,会用到一些与编译有关的术语,比如:【编辑器、编译器、调试器、连接器,链接器、解释器,集成开发环境(Integrated Development Environment,IDE)、图形用户界面工具】等,他们都是什么含义?
一、编译相关
1. 编辑器(Editor)
程序开发中的“编辑器”一般是指“代码编辑器”。一般而言,计算机程序是用文本形式体现的。少量专门用途的“编程语言”可能是用图形界面编写程序的,比如用于幼儿编程教育的 Alice 等。
代码编辑器主要用于用来编写和查看程序源代码。通常这种编辑器有语法加亮(Syntax-Highlighting)功能。
2. 编译器(Compiler)
【中文维基百科】:编译器(compiler),是一种计算机程序,它会将用某种编程语言写成的源代码(原始语言),转换成另一种编程语言(目标语言)。
【英文维基百科】:A compiler is a computer program that transforms computer code written in one programming language (the source language) into another programming language (the target language). Compilers are a type of translator that support digital devices, primarily computers. The name compiler is primarily used for programs that translate source code from a high-level programming language to a lower level language (e.g., assembly language, object code, or machine code) to create an executable program.
3. 链接器(Linker)
【中文维基百科】:是一个程序,将一个或多个由编译器或汇编器生成的目标文件外加库链接为一个可执行文件
Linker 有时翻译为链接器,有时翻译为连接器。但是后者比较少见。
4. 调试器(Debugger)
【中文维基百科】:调试器是指一种用于调试其它程序的计算机程序及工具。能够让代码在指令组模拟器(ISS)中可以检查运行状况以及选择性地运行,以便排错、调试。当开发的进度遇到瓶颈或找不出哪里有问题时,这技术将是非常有用的。但是将程序运行在调试器之下,这将比直接在运作的平台以及处理器上运行还要来得慢。
典型的调试器通常能够在程序运行时拥有以下这些功能,例如单步运行(single-stepping)、利用中断点(breakpoint)使程序遇到各种种类的事件(event)时停止(breaking)(一般用于使程序停止在想要检查的状态)、以及追踪某些变量的变化。有些调试器也有能力在想要调试的程序在运行状态时,去改变它的状态,而不仅仅只是用来观察而己。
5. 解释器(interpreter)
【中文维基百科】:解释器是一种计算机程序,能够把高级编程语言一行一行解释运行。解释器像是一位“中间人”,每次运行程序时都要先转成另一种语言再作运行,因此解释器的程序运行速度比较缓慢。它不会一次把整个程序翻译出来,而是每翻译一行程序就立刻运行,然后再翻译下一行,再运行,如此不停地进行下去。
6. 集成开发环境(Integrated Development Environment,简称IDE)
【中文维基百科】:集成开发环境是一种辅助程序开发人员开发软件的应用软件,在开发工具内部就可以辅助编写源代码文本、并编译打包成为可用的程序,有些甚至可以设计图形接口。
IDE通常包括编程语言编辑器、自动构建工具、通常还包括调试器。有些IDE包含编译器/解释器,如微软的Microsoft Visual Studio,有些则不包含,如Eclipse、SharpDevelop等,这些IDE是通过调用第三方编译器来实现代码的编译工作的。有时IDE还会包含版本控制系统和一些可以设计图形用户界面的工具。许多支持面向对象的现代化IDE还包括了类别浏览器、对象查看器、对象结构图。虽然当前有一些IDE支持多种编程语言(例如Eclipse、NetBeans、Microsoft Visual Studio),但是一般而言,IDE主要还是针对特定的编程语言而量身打造(例如Visual Basic)。
7. 图形用户界面
图形用户界面(Graphical User Interface,简称GUI)是指采用图形方式显示的计算机操作用户界面。与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。然而这界面若要透过在显示器的特定位置,以“各种美观、而不单调的视觉消息”提示用户“状态的改变”,势必得比简单的文字消息呈现,花上更多的计算机运算能力,计算“要改变显示器哪些光点,变成哪些颜色”
8. 可视化程序设计语言
【英文维基百科】:In computing, a visual programming language (VPL) is any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. (在计算领域,可视化程序设计语言是任何能让用户以图形化的方式操纵程序元素,而不是仅仅使用编写文本的方式,来生成程序的语言)
常见的可视化程序设计语言,通常都是与集成开发环境打包的。比如 C++ 本身不是可视化程序设计语言,但是 Visual C++ 中提供了为 Windows 窗口应用程序创建界面的功能,所以以一种不严格的说法,Visual C++ 是可视化程序设计语言。
9. 图形用户界面设计工具
我们很难听到“图形用户界面设计工具”这样的说法。
一种可能的理解是,集成开发环境为可视化程序设计语言提供的用于设计图形用户界面的功能或者工具。
另一种可能的理解是指“原型设计工具”,比如Axure等。
二、编程范式,编程术语(如OOP等)
Structural Programming (结构化编程)
C语言已经支持,所有的数据暴露在所有的处理逻辑之下,在大型项目中容易引发问题

Object-Oriented Programming (OOP, 面向对象编程)
数据与处理数据的逻辑被封装在特定的环境中(对象),对象互相访问需要通过接口
面向对象使得开发和维护程序变动容易了。

Generic Programming (GP,泛型编程)
未使用泛型的情况下,数据的类型变化,程序员需要重写函数。
针对此点,泛型主要解决了数据的类型的不同,定义一个通用的模板(泛型),编写时不需要关心实际处理的类型,在程序运行时编译器根据代码自动生成相应的函数。

但是,支持泛型编程的语言,能够自动处理多种类型的数据:

Functional Programming (FP,函数式编程)
非FP语言的函数在运行时会修改程序其他参数或受到外界环境的影响等等,产生副作用
FP语言的函数在运行时对外界无影响。

程序开发中的术语,如IDE,OOP等等的更多相关文章
- IOS程序开发中-跳转到 发送短信界面 实现发短信
前言:我发现我标题取的不好,谁帮我取个承接上下文的标题?评论一下,我改 项目需求:在程序开发中,我们需要在某个程序里面发送一些短信验证(不是接收短信验证,关于短信验证,传送门:http://www.c ...
- 在C#/.NET应用程序开发中创建一个基于Topshelf的应用程序守护进程(服务)
本文首发于:码友网--一个专注.NET/.NET Core开发的编程爱好者社区. 文章目录 C#/.NET基于Topshelf创建Windows服务的系列文章目录: C#/.NET基于Topshelf ...
- 微信小程序开发教程 #043 - 在小程序开发中使用 npm
本文介绍了如何在微信小程序开发中使用 npm 中包的功能,大大提高微信小程序的开发效率,同时也是微信小程序系列教程的视频版更新. 微信小程序在发布之初没有对 npm 的支持功能,这也是目前很多前端开发 ...
- AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题
AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子. 一 AOP的基本概念 (1)Asp ...
- 总结微信小程序开发中遇到的坑
总结微信小程序开发中遇到的坑,一些坑你得一个一个的跳啊,/(ㄒoㄒ)/~~ 1,页面跳转和参数传递实例 首先说一下我遇到的需求有一个我的消息页面,里面的数据都是后端返回的,返回的数据大致如下,有一个是 ...
- 解决微信小程序开发中wxss中不能用本地图片
微信小程序开发中wxss中不能用本地图片,我们可以用将我们的图片传到服务器上,然后直接引用在线地址.但是当我们没有服务器时,我们可以用"图床",这个具体可以百度.这里我们用第二种方 ...
- 读书笔记-详解C程序开发中 .c和.h文件的区别
一个简单的问题:.c和.h文件的区别 学了几个月的C语言,反而觉得越来越不懂了.同样是子程序,可以定义在.c文件中,也可以定义在.h文件中,那这两个文件到底在用法上有什么区别呢? 2楼: 子程序不要定 ...
- 关于微信小程序开发中遇到的缺少game.json问题的解决
一.小程序开发的两种选项 ①小游戏开发:内部对应的入口配置文件为game.json丶game.wxml之类的文件或者项目. ②小程序开发:内部对应的入口配置文件为app.json丶app.wxml之类 ...
- 微信小程序开发中的二三事之网易云信IMSDK DEMO
本文由作者邹永胜授权网易云社区发布. 简介 为了更好的展示我们即时通讯SDK强悍的能力,网易云信IM SDK微信小程序DEMO的开发就提上了日程.用产品的话说就是: 云信 IM 小程序 SDK 的能力 ...
随机推荐
- vue+webpack怎么分环境进行打包
这里说下,webpack打包里面涉及到的东西,不止webpack,还有node的知识, node的全局变量process,process.env用于返回用户环境信息对象,因为是node的全局变量,所以 ...
- 用户HTTP请求过程简单剖析
用户终端(如电脑浏览器)发起某个url请求,如http://www.baidu.com/1.jpg. 1.电脑首先会对www.baidu.com进行解析请求,获得域名对应的服务器IP. 2.电脑对服务 ...
- 03 HDFS的客户端操作
服务器和客户端的概念 hdfs的客户端有多种形式 1.网页形式 2.命令行形式 3.客户端在哪里运行,没有约束,只要运行客户端的机器能够跟hdfs集群联网 参数配置 文件的切块大小和存储的副本数量,都 ...
- R自带数据集
向量 euro #欧元汇率,长度为11,每个元素都有命名landmasses #48个陆地的面积,每个都有命名precip #长度为70的命名向量rivers #北美141条河流长 ...
- Kaggle 题目 nu-cs6220-assignment-1
Kaggle题目 nu-cs6220-assignment-1 题目地址如下: https://www.kaggle.com/c/nu-cs6220-assignment-1/overview 这是个 ...
- 我要打十个!详解建造者模式(builder pattern)
前言 "我要打十个",其实是我要打十个野怪! 这十个野怪呢,它们有不同的技能.装备和武器,长得也不一样.这里野怪是一个蛮复杂的对象,由各个不同的部分组成(技能.装备.武器等),不同 ...
- CSS样式命名
CSS样式命名 说明网页公共命名#wrapper 页面外围控制整体布局宽度#container或#content 容器,用于最外层#layout 布局#head, #heade ...
- 题解 NOIP2018【赛道修建】—— 洛谷
这道题有一点点树上dp的意思(大佬轻喷 我刚拿到这道题的时候毫无头绪,只知道这道题要二分答案 为什么是二分答案??? 题目: 目前赛道修建的方案尚未确定.你的任务是设计一 种赛道修建的方案,使得修建的 ...
- Koadic的安装和使用
概述 Koadic是DEFCON分型出来的一个后渗透工具,主要通过vbscript.jscript进行大部分操作 环境准备 我准备的是两台虚拟机一台kali就是攻击机器一台windows7 64位就是 ...
- python-模块的发布和安装
当我们 import python 模块时,默认先在当前路径搜索,如果当前路径找不到目标模块,python会到安装目录找,还找不到则抛出异常. 如果我们想让自己写的模块,能跟系统自带模块一样,在任何地 ...