程序开发中的术语,如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语言的函数在运行时对外界无影响。