“Programming Program”版本间的差异

来自iCenter Wiki
跳转至: 导航搜索
C++ 标准库
软件集成开发环境(IDE)
 
(相同用户的13个中间修订版本未显示)
第1行: 第1行:
  
==编程过程(Programming) ==
+
=编程过程(Programming) =
  
 
高级编程语言(High level Programming language),如C++, Java, Python 等等,用于创作源代码。
 
高级编程语言(High level Programming language),如C++, Java, Python 等等,用于创作源代码。
第10行: 第10行:
 
机器代码(Machine code)或机器指令 (instructions )
 
机器代码(Machine code)或机器指令 (instructions )
  
==编程语言(Programming language) ==
+
==编辑器(Editor) ==
 +
 
 +
TextEditor 文本编辑器
 +
 
 +
* Vim / vi
 +
 
 +
* Emac
 +
 
 +
* Sublime
 +
 
 +
* Notepad++
 +
 
 +
*Visual Studio Code
 +
 
 +
==编译器(Compiler) ==
 +
 
 +
编译器,依照如下顺序,将高级语言翻译成汇编语言: 高级语言 --->>  汇编语言
 +
 
 +
编译器,主要由词法分析、语法分析、语义分析、优化和生成汇编代码五个部分。
 +
 
 +
汇编代码文件后缀是.s。
 +
 
 +
a.c --->>> a.s
 +
 
 +
==汇编器(Assembler)==
 +
 
 +
汇编代码 --->>  二进制机器码。
 +
 
 +
汇编器负责将汇编语言转换成机器可以执行的语言(完全由0和1组成)。
 +
 
 +
汇编文件经过汇编,变成目标文件,后缀为.o。
 +
 
 +
a.s --->>> a.o
 +
 
 +
==链接器(Linker) ==
 +
 
 +
GNU linker (or GNU ld) is the GNU Project's implementation of the Unix command ld
 +
 
 +
a.o --->a.out
 +
 
 +
==编译套件(Compiler Collection) ==
 +
 
 +
GCC(GNU Compiler Collection),一套编程语言编译器,以GPL及LGPL许可证所发行的自由软件,也是GNU项目的关键部分,也是GNU工具链的主要组成部分之一。
 +
 
 +
谷歌的Bazel。
 +
 
 +
=汇编语言(assembly language)=
 +
 
 +
汇编语言是指令集的文本形式的助记符,是用人类看得懂的语言来描述指令集,否则指令集的机器码都是一堆二进制数字。
 +
 
 +
指令集包括汇编语言形式和二进制机器码格式,CPU执行的是二进制代码(这叫机器指令,机器能理解的)。每条汇编指令都有对应的机器码指令。
 +
 
 +
指令集的机器码,人类读起来非常麻烦,但汇编是用类似人类语言的方式描述指令集,读起来方便多了。
 +
 
 +
汇编器完成汇编语言和二进制机器码的转换(现在都和编译器打包在一起了)。
 +
 
 +
常见的汇编语言的两种风格是:Intel 和 AT&T。
 +
 
 +
=编程语言(Programming language) =
  
===硬件编程语言===
+
==硬件编程语言==
  
 
设计处理器等集成电路的硬件描述语言
 
设计处理器等集成电路的硬件描述语言
第28行: 第86行:
 
https://zh.wikipedia.org/wiki/Verilog
 
https://zh.wikipedia.org/wiki/Verilog
  
===软件编程语言===
+
==高级编程语言==
  
 
* C (https://en.wikipedia.org/wiki/C_(programming_language)
 
* C (https://en.wikipedia.org/wiki/C_(programming_language)
第49行: 第107行:
  
 
You can use go with gore
 
You can use go with gore
 
===汇编语言===
 
 
汇编语言是指令集的文本形式的助记符,是用人类看得懂的语言来描述指令集,否则指令集的机器码都是一堆二进制数字。常见的汇编语言的两种风格是:Intel 和 AT&T。
 
 
指令集的机器码,人类读起来非常麻烦,但汇编是用类似人类语言的方式描述指令集,读起来方便多了。
 
 
指令集包括汇编语言形式和二进制机器码格式,CPU执行的是二进制代码(这叫机器指令,机器能理解的),汇编就是给人看的,人能理解的。
 
 
每条汇编指令都有对应的机器码指令。完成汇编语言和二进制机器码的转换是汇编器(现在都和编译器打包在一起了)。
 
  
 
===C++ 面向对象编程===
 
===C++ 面向对象编程===
第78行: 第126行:
 
方法重载(overloading):提供了创建同名的多个方法的能力,但这些方法需要使用不同的参数类型。
 
方法重载(overloading):提供了创建同名的多个方法的能力,但这些方法需要使用不同的参数类型。
  
public:表示它所修饰的类成员可以允许其他任何类来访问,即是公有的。
+
公有(public):表示它所修饰的类成员可以允许其他任何类来访问,即是公有的。
  
private:表示只允许同一个类的成员访问,其它类包括它的子类都不能访问,即是私有的。
+
私有(private):表示只允许同一个类的成员访问,其它类包括它的子类都不能访问,即是私有的。
  
 
封装(Encapsulation):每个对象都包含它能进行操作所需要的所有信息,这个特性叫封装,因此对象不必依赖其他对象来完成自己的操作。
 
封装(Encapsulation):每个对象都包含它能进行操作所需要的所有信息,这个特性叫封装,因此对象不必依赖其他对象来完成自己的操作。
第86行: 第134行:
 
对象的继承(inheritance):代表了一种“is-a”的关系。继承者可以理解为是被继承者的特殊化,不仅有被继承者的特性,还有自己独有的个性。继承定义了类如何相互关联,共享特性。
 
对象的继承(inheritance):代表了一种“is-a”的关系。继承者可以理解为是被继承者的特殊化,不仅有被继承者的特性,还有自己独有的个性。继承定义了类如何相互关联,共享特性。
  
protected:表示继承时,子类可以完全访问基类。用protected修饰的类成员,对子类公开,但不对其他类公开。
+
保护(protected):表示继承时,子类可以完全访问基类。用protected修饰的类成员,对子类公开,但不对其他类公开。
  
virtual:为了让子类的实例完全代替父类的类成员,父类必须把该成员申明为虚拟的。子类使用override关键字,将父类实现替换为它自己的实现,这就是方法重写(override)。
+
虚拟(virtual):为了让子类的实例完全代替父类的类成员,父类必须把该成员申明为虚拟的。子类使用override关键字,将父类实现替换为它自己的实现,这就是方法重写(override)。
  
 
多态(polymorphism):表示不同的对象可以执行相同的动作,但是要通过他们自己的实现代码来执行。
 
多态(polymorphism):表示不同的对象可以执行相同的动作,但是要通过他们自己的实现代码来执行。
  
====Generic Programming 泛型编程====
+
====泛型编程(Generic Programming) ====
  
 
模板(Template)指C++编程语言中的函数模板(function template)与类别模板(class template)。
 
模板(Template)指C++编程语言中的函数模板(function template)与类别模板(class template)。
第103行: 第151行:
  
 
算法(Algorithm):<algorithm>, <cstdlib>
 
算法(Algorithm):<algorithm>, <cstdlib>
 
  
 
====C++ 标准库====
 
====C++ 标准库====
第110行: 第157行:
 
标准模版库(Standard Template Library, STL)
 
标准模版库(Standard Template Library, STL)
  
===Boost C++ 库(Libraries)===
+
====Boost C++ 库(Libraries)====
  
 
Boost是一组扩充C++功能的经过同行评审(Peer-reviewed)且开放源代码程序库。许多Boost的开发人员是来自C++标准委员会,而部分的Boost库成为C++的TR1标准之一。
 
Boost是一组扩充C++功能的经过同行评审(Peer-reviewed)且开放源代码程序库。许多Boost的开发人员是来自C++标准委员会,而部分的Boost库成为C++的TR1标准之一。
  
==编辑器(Editor) ==
 
  
TextEditor 文本编辑器
+
=软件集成开发环境(IDE)=
  
* Vim / vi
+
IDE(Integrated Development Environment)是指集成了文本编辑器、编译器和链接器的软件开发环境。如:
  
* Emac
+
* 微软 Visual Studio Code 版本(VS code)
  
* Notepad++
+
免费下载地址:https://code.visualstudio.com/
 
+
==编译器(Compiler) ==
+
 
+
编译器,依照如下顺序,将高级语言翻译成二进制码: 高级语言 --->>  汇编语言 --->>  二进制机器码。
+
 
+
GCC(GNU Compiler Collection),一套编程语言编译器,以GPL及LGPL许可证所发行的自由软件,也是GNU项目的关键部分,也是GNU工具链的主要组成部分之一。
+
 
+
 
+
a.c --->>> a.o
+
 
+
==链接器(Linker) ==
+
 
+
GNU linker (or GNU ld) is the GNU Project's implementation of the Unix command ld
+
 
+
a.o --->a.out
+
 
+
==集成开发环境(IDE)==
+
 
+
IDE是指集成了文本编辑器、编译器和链接器的软件。如:
+
 
+
* 微软 Visual Studio 2017 community版本
+
 
+
免费下载地址:https://www.visualstudio.com
+
  
 
* Eclipse  
 
* Eclipse  
第156行: 第179行:
  
 
免费下载地址:https://www.jetbrains.com/idea
 
免费下载地址:https://www.jetbrains.com/idea
 +
 +
* Android Studio
 +
安卓应用开发集成环境。
 +
 +
免费下载地址:http://www.android.com

2019年6月11日 (二) 01:28的最后版本

编程过程(Programming)

高级编程语言(High level Programming language),如C++, Java, Python 等等,用于创作源代码。

源代码(source code)→ 预处理器(preprocessor)→ 编译器(compiler)(语法检测)→ 汇编程序(assembler)→ 目标代码(object code)

目标代码(object code) → 链接器(Linker)(链接system library)→ 可执行文件(executables)

机器代码(Machine code)或机器指令 (instructions )

编辑器(Editor)

TextEditor 文本编辑器

  • Vim / vi
  • Emac
  • Sublime
  • Notepad++
  • Visual Studio Code

编译器(Compiler)

编译器,依照如下顺序,将高级语言翻译成汇编语言: 高级语言 --->> 汇编语言

编译器,主要由词法分析、语法分析、语义分析、优化和生成汇编代码五个部分。

汇编代码文件后缀是.s。

a.c --->>> a.s

汇编器(Assembler)

汇编代码 --->> 二进制机器码。

汇编器负责将汇编语言转换成机器可以执行的语言(完全由0和1组成)。

汇编文件经过汇编,变成目标文件,后缀为.o。

a.s --->>> a.o

链接器(Linker)

GNU linker (or GNU ld) is the GNU Project's implementation of the Unix command ld

a.o --->a.out

编译套件(Compiler Collection)

GCC(GNU Compiler Collection),一套编程语言编译器,以GPL及LGPL许可证所发行的自由软件,也是GNU项目的关键部分,也是GNU工具链的主要组成部分之一。

谷歌的Bazel。

汇编语言(assembly language)

汇编语言是指令集的文本形式的助记符,是用人类看得懂的语言来描述指令集,否则指令集的机器码都是一堆二进制数字。

指令集包括汇编语言形式和二进制机器码格式,CPU执行的是二进制代码(这叫机器指令,机器能理解的)。每条汇编指令都有对应的机器码指令。

指令集的机器码,人类读起来非常麻烦,但汇编是用类似人类语言的方式描述指令集,读起来方便多了。

汇编器完成汇编语言和二进制机器码的转换(现在都和编译器打包在一起了)。

常见的汇编语言的两种风格是:Intel 和 AT&T。

编程语言(Programming language)

硬件编程语言

设计处理器等集成电路的硬件描述语言

  • HDL (Hardware Description Language)

https://en.wikipedia.org/wiki/Hardware_description_language

  • VHDL (VHSIC Hardware Description Language)

https://zh.wikipedia.org/wiki/VHDL

  • Verilog

https://zh.wikipedia.org/wiki/Verilog

高级编程语言

https://github.com/golang/go

https://godoc.org/

https://golang.org/

You can use go with gore

C++ 面向对象编程

C++之父:Bjarne Stroustrup

"No programming language is perfect. Fortunately, a programming language does not have to be perfect to be a good tool for building great systems"

基本概念

对象(object):是一个自包含的实体,用一组可识别的特性和行为来标识。C++以数据成员(data member)表达属性,以成员函数(member function)表达行为。

类(class):是具有相同属性和功能的对象的抽象集合。

对象实例(instance):是真实的对象。实例化就是创建对象的过程,使用new关键字来创建。

构造方法(constructor):又叫构造函数,其实就是对类进行初始化。在new时候调用。

方法重载(overloading):提供了创建同名的多个方法的能力,但这些方法需要使用不同的参数类型。

公有(public):表示它所修饰的类成员可以允许其他任何类来访问,即是公有的。

私有(private):表示只允许同一个类的成员访问,其它类包括它的子类都不能访问,即是私有的。

封装(Encapsulation):每个对象都包含它能进行操作所需要的所有信息,这个特性叫封装,因此对象不必依赖其他对象来完成自己的操作。

对象的继承(inheritance):代表了一种“is-a”的关系。继承者可以理解为是被继承者的特殊化,不仅有被继承者的特性,还有自己独有的个性。继承定义了类如何相互关联,共享特性。

保护(protected):表示继承时,子类可以完全访问基类。用protected修饰的类成员,对子类公开,但不对其他类公开。

虚拟(virtual):为了让子类的实例完全代替父类的类成员,父类必须把该成员申明为虚拟的。子类使用override关键字,将父类实现替换为它自己的实现,这就是方法重写(override)。

多态(polymorphism):表示不同的对象可以执行相同的动作,但是要通过他们自己的实现代码来执行。

泛型编程(Generic Programming)

模板(Template)指C++编程语言中的函数模板(function template)与类别模板(class template)。

template<class T>

容器(Container):<vector>, <list>, <bitset>, <set>, <map>, <stack>, <queue>, <dequeue>.

迭代器(iterator):<iterator>

算法(Algorithm):<algorithm>, <cstdlib>

C++ 标准库

C语言的标准库 <X.h>,定义在std名字空间中<X>.

标准模版库(Standard Template Library, STL)

Boost C++ 库(Libraries)

Boost是一组扩充C++功能的经过同行评审(Peer-reviewed)且开放源代码程序库。许多Boost的开发人员是来自C++标准委员会,而部分的Boost库成为C++的TR1标准之一。


软件集成开发环境(IDE)

IDE(Integrated Development Environment)是指集成了文本编辑器、编译器和链接器的软件开发环境。如:

  • 微软 Visual Studio Code 版本(VS code)

免费下载地址:https://code.visualstudio.com/

  • Eclipse

开源的图形化集成开发环境

免费下载地址:https://eclipse.org/

  • IntelliJ IDEA

Java开发环境的IDE。

免费下载地址:https://www.jetbrains.com/idea

  • Android Studio

安卓应用开发集成环境。

免费下载地址:http://www.android.com