C/C++教程

第1单元 C++简介

本文主要是介绍第1单元 C++简介,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

第1单元 C++简介

文章目录

    • 第1单元 C++简介
      • 1.1 C++地位概览
      • 1.2 C++编程范式
      • 1.3 程序设计语言演化
      • 1.4 程序开发中的术语
      • 1.5 创建和编译程序的过程

注:本部分内容主要来自中国大学MOOC北京邮电大学崔毅东的《C++程序设计》1课程。

注:94条C++程序规范。


1.1 C++地位概览

  上图是C++在CS中的地位,以及C++和其他语言的整体类比。

  C++ 是一门复杂的语言。这体现在C++继承了C语言的主要特征,借鉴了Smalltalk一些面向对象的特性,除此之外还演化出一些新的概念,如模板。

1.2 C++编程范式

  • Structural Programming(结构化编程)
    所有的函数都可以访问数据,任何数据也可以被任何函数访问。
    缺点:当一个程序访问数据时,数据可能已经被其他函数修改。
     
  • Object-Oriented Programming(OOP,面向对象编程)
    每个程序和其数据都被封装在一起,数据交互通过接口实现。
    评价:OOP使得开发和维护程序变得更加容易。
     
  • Generic Programming(GP,泛型编程)
    泛型编程解决数据类型更换就需要重新写数据的问题,使得程序本身更加通用。
     
  • Functional Programming(FP,函数式编程)
    简单来说就是将程序封装起来,不会对外界有副作用。

1.3 程序设计语言演化

上图给出了高级程序语言的演化过程。
年份C++标准官方名称
2020To be determinedC++20
2017ISO/IEC 14882:2017C++17,C++1z
2014ISO/IEC 14882:2014C++14,C++1y
2011ISO/IEC 14882:2011C++11,C++98
2003ISO/IEC 14882:2003C++03
1998ISO/IEC 14882:1998C++98

1.4 程序开发中的术语

  • 编辑器(Editor)
      程序开发中的“编辑器”一般是指 “代码编辑器”。一般而言,计算机程序是用文本形式体现的。少量专门用途的“编程语言”可能是图形界面编写程序的,比如用于幼儿编程教育的Alice等。
      代码编辑器主要用于用来编写和查看程序源代码。通常这种编辑器有语法加亮(Syntax-Highlighting)功能。
     

  • 编译器(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.
     

  • 链接器(Linker)
    【中文维基百科】:是一个程序,将一个或多个由编译器或汇编器生成的目标文件外加库链接为一个可执行文件.
    Linker 有时翻译为链接器,有时翻译为连接器。但是后者比较少见。
     

  • 调试器(Debugger)
    【中文维基百科】:调试器是指一种用于调试其它程序的计算机程序及工具。能够让代码在指令组模拟器(ISS)中可以检查运行状况以及选择性地运行,以便排错、调试。当开发的进度遇到瓶颈或找不出哪里有问题时,这技术将是非常有用的。但是将程序运行在调试器之下,这将比直接在运作的平台以及处理器上运行还要来得慢。
      典型的调试器通常能够在程序运行时拥有以下这些功能,例如单步运行(single-stepping)、利用中断点(breakpoint)使程序遇到各种种类的事件(event)时停止(breaking)(一般用于使程序停止在想要检查的状态)、以及追踪某些变量的变化。有些调试器也有能力在想要调试的程序在运行状态时,去改变它的状态,而不仅仅只是用来观察而己。
     

  • 解释器(interpreter)
    【中文维基百科】:解释器是一种计算机程序,能够把高级编程语言一行一行解释运行。解释器像是一位“中间人”,每次运行程序时都要先转成另一种语言再作运行,因此解释器的程序运行速度比较缓慢。它不会一次把整个程序翻译出来,而是每翻译一行程序就立刻运行,然后再翻译下一行,再运行,如此不停地进行下去。
     

  • 集成开发环境(Integrated Development Environment,简称IDE)
    【中文维基百科】:集成开发环境是一种辅助程序开发人员开发软件的应用软件,在开发工具内部就可以辅助编写源代码文本、并编译打包成为可用的程序,有些甚至可以设计图形接口。
      IDE通常包括编程语言编辑器、自动构建工具、通常还包括调试器。有些IDE包含编译器/解释器,如微软的Microsoft Visual Studio,有些则不包含,如Eclipse、SharpDevelop等,这些IDE是通过调用第三方编译器来实现代码的编译工作的。有时IDE还会包含版本控制系统和一些可以设计图形用户界面的工具。许多支持面向对象的现代化IDE还包括了类别浏览器、对象查看器、对象结构图。虽然当前有一些IDE支持多种编程语言(例如Eclipse、NetBeans、Microsoft Visual Studio),但是一般而言,IDE主要还是针对特定的编程语言而量身打造(例如Visual Basic)。
     

  • 图形用户界面
    图形用户界面(Graphical User Interface,简称GUI)是指采用图形方式显示的计算机操作用户界面。与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。然而这界面若要透过在显示器的特定位置,以“各种美观、而不单调的视觉消息”提示用户“状态的改变”,势必得比简单的文字消息呈现,花上更多的计算机运算能力,计算“要改变显示器哪些光点,变成哪些颜色”。
     

  • 可视化程序设计语言
    【英文维基百科】: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++ 是可视化程序设计语言。
     

  • 图形用户界面设计工具
      我们很难听到“图形用户界面设计工具”这样的说法。一种可能的理解是,集成开发环境为可视化程序设计语言提供的用于设计图形用户界面的功能或者工具。另一种可能的理解是指“原型设计工具”,比如Axure等。

1.5 创建和编译程序的过程

  • Precompile:这里的替换工作如将一开始的“#include”中的头文件代码替换到源文件里面去。
  • Compile:生成目标文件,这个文件在不同的操作系统或编译器上有不同的规则。
  • Link:对程序中的各种符号进行重新定位。

  1. https://www.icourse163.org/learn/BUPT-1003564002?tid=1463116453#/learn/announce ↩︎

这篇关于第1单元 C++简介的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!