查看“计算机系统”的源代码
←
计算机系统
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只对以下1个用户组开放:
用户
。
您可以查看并复制此页面的源代码:
计算的基础是指令集。通信的基础是协议集。标准是信息技术的基础。 =计算机系统= 计算系统(computing system)由计算硬件和计算机软件部分组成。计算机是负责信息的存储,传输与处理的基本设备。计算机硬件的核心是处理器,主要的计算机软件有操作系统、数据库等。 个人电脑(Personal Computer,简称PC)是个人使用的计算机系统。Xerox Alto是第一台个人电脑,由Xerox公司的Charles P. Thacker于1973年研发。 =计算机硬件= ==基本设计原则== *设计原则:计算机硬件的组织方式,如计算、存储、通信之间的模式,应该和功用相适应。 ==计算机组成(Components)== 计算机硬件的主要组件(Components)有中央处理器(Central Processing Unit, CPU)、主存储器(Main Memory)、磁盘(Disk)、输入输出外设设备(IO)、传输总线设备(Bus)等等。 ==计算机存储(Memory Hierarchy) == 寄存器 Register 缓存Cache 主存RAM(Main memory) 固态盘SSD(Solid-state disk) 磁盘Disk (magnetic) =处理器架构 = [[Central_Processing_Unit_CPU]] =计算机软件= ==编程过程(Programming) == 高级编程语言(High level Programming language),如C++, Java, Python 等等,用于创作源代码。 源代码(source code)→ 预处理器(preprocessor)→ 编译器(compiler)(语法检测)→ 汇编程序(assembler)→ 目标代码(object code) 目标代码(object code) → 链接器(Linker)(链接system library)→ 可执行文件(executables) 机器代码(Machine code)或机器指令 (instructions ) ==编程语言(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 ===软件编程语言=== * C (https://en.wikipedia.org/wiki/C_(programming_language) * C++ (https://zh.wikipedia.org/wiki/C%2B%2B) * Python (https://en.wikipedia.org/wiki/Python_(programming_language) * Java (https://en.wikipedia.org/wiki/Java_(programming_language) * Java (https://en.wikipedia.org/wiki/Java_(programming_language) * GO (https://zh.wikipedia.org/wiki/Go) https://github.com/golang/go https://godoc.org/ https://golang.org/ You can use go with gore ===汇编语言=== 汇编语言是指令集的文本形式的助记符,是用人类看得懂的语言来描述指令集,否则指令集的机器码都是一堆二进制数字。常见的汇编语言的两种风格是:Intel 和 AT&T。 指令集的机器码,人类读起来非常麻烦,但汇编是用类似人类语言的方式描述指令集,读起来方便多了。 指令集包括汇编语言形式和二进制机器码格式,CPU执行的是二进制代码(这叫机器指令,机器能理解的),汇编就是给人看的,人能理解的。 每条汇编指令都有对应的机器码指令。完成汇编语言和二进制机器码的转换是汇编器(现在都和编译器打包在一起了)。 ==编辑器(Editor) == TextEditor 文本编辑器 * Vim / vi * Emac * Notepad++ ==编译器(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 开源的图形化集成开发环境 免费下载地址:https://eclipse.org/ * IntelliJ IDEA Java开发环境的IDE。 免费下载地址:https://www.jetbrains.com/idea =常用软件 = ==操作系统(OS)== 管理计算机硬件的软件。 操作系统的向下兼容原则,或称为向后兼容(backward compatibility)。 * Linux : 发行版 Ubuntu Linux, CentOS Linux, * Windows : 微软公司推出的操作系统, 如Windows 10。 * Mac OS 苹果公司推出的操作系统,如Leopard。 ==数据库== 数据是描述客观事物的属性的量化值,数值与数值之间有联系,又称为关系(relations)。 数据库(database)是管理数据的系统软件。SQL是结构化查询语言的缩写。 关系型数据库是目前数据管理中最常用的软件。 * 关系型数据库 微软SQL server,oracle 数据库,MySQL等等。 * NoSQL ->NewSQL 随着大数据的出现与新应用的需求,出现了一大批弱化关系型数据库的内在限制的新型的数据管理软件。 这些新型的数据管理系统被称为NoSQL或NewSQL。 ==其他工具软件== 办公软件office套件。 =软件工程 = 规划开发软件的项目管理,包括软件需求分析、软件设计、软件开发和实现、软件测试等环节。 ==设计模式 Design Pattern== 程序是解决客观问题的计算机软件。编程语言本质上是对计算机解决问题能力一个抽象。 编程是用于描述客观事物及其问题的一种工具。编程这种描述的解决过程可以在机器上运行完成。 ===C++ 面向对象编程=== C++之父:[https://en.wikipedia.org/wiki/Bjarne_Stroustrup 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标准之一。 ==敏捷编程 Agile Programming== ==代码管理 == ===Make === 自动化编译链接管理工具。 * CMake CMake是"cross platform make"的缩写,是个开源的跨平台编译链接管理工具。 它用配置文件控制建构过程(build process)的方式和Unix的Make相似。CMake的配置文件取名为CMakeLists.txt。 ===Git === 协同开发代码管理工具。 [[Gitlab系统的安装配置]] [[Gitlab的使用和操作]] ===CI === 自动化连续集成和测试。 ===单元测试=== Unit Test =Web应用开发= Javascript PHP =移动应用开发= Android平台开发 iOS平台开发 =参考文献= == 编程语言 == # Google C++ Style [https://google.github.io/styleguide/cppguide.html Google C++ Style] # PEP 8 - Style Guide for Python Code [https://www.python.org/dev/peps/pep-0008/ PEP_8] # David Flanagan, JavaScript: The definitive guide: Activate your web pages. " O'Reilly Media, Inc.", 2011. # Weiss, Mark Allen, Data structures and algorithm analysis in Java, Addison-Wesley Longman Publishing Co., Inc., 1998. # Bjarne Stroustrup, The C++ programming language. Pearson Education, 2013. == 计算机应用基础 == # John L. Hennessy, and David A. Patterson. Computer architecture: a quantitative approach. Elsevier, 2011. # Neil Matthew, and Richard Stones. Beginning linux programming. John Wiley & Sons, 2011. # Miguel Grinberg, Flask Web Development: Developing Web Applications with Python. O'Reilly Media, Inc., 2014. ==软件开发== #Shore, James. The art of agile development. " O'Reilly Media, Inc.", 2007.
返回
计算机系统
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
实践教学
个性化3D设计与实现
人工智能实践教学
区块链技术及应用
虚拟现实技术与内容制作
超越学科界限的认知基础课程
电子工艺实习
Nand2Tetris Engine Curriculum
TULLL Creative Learning Group
Wiki上手说明
Wiki账户创建
最近更改
工具
链入页面
相关更改
特殊页面
页面信息