查看“计算机系统”的源代码
←
计算机系统
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只对以下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_Program]] =常用软件 = ==操作系统(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账户创建
最近更改
工具
链入页面
相关更改
特殊页面
页面信息