课程目标 掌握C++语言的基本语法和规则 熟练阅读和分析C++程序源代码 掌握类与对象的基本思想与实现方法 掌握算法的基本概念和设计方法 培养面向对象的程序设计思维和能力 掌握基本的编程技巧和调试技术 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 课程目标 掌握 C++ 语言的基本语法和规则 熟练阅读和分析 C++ 程序源代码 掌握类与对象的基本思想与实现方法 掌握算法的基本概念和设计方法 培养面向对象的程序设计思维和能力 掌握基本的编程技巧和调试技术
案 程序设计语言介绍 口程序设计语言的发展 ▣ 程序设计的方法 ▣程序开发的基本概念 http://math.ecnu.edu.cn/-jypan
http://math.ecnu.edu.cn/~jypan 程序设计语言介绍 程序设计语言的发展 程序设计的方法 程序开发的基本概念
程序设计 什么是程序设计 From Wikipedia,2020 Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result or to perform a specific task.Programming involves tasks such as:analysis,generating algorithms,profiling algorithms'accuracy and resource consumption,and the implementation of algorithms in a chosen programming language. The purpose of programming is to find a sequence of instructions that will automate the performance of a task(which can be as complex as an operating system)on a computer,often for solving a given problem.Proficient programming thus often requires expertise in several different subjects,including knowledge of the application domain,specialized algorithms,and formal logic. 口程序设计:理解和分析问题, 算法设计与分析,编程实现与调试 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 程序设计 Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result or to perform a specific task. Programming involves tasks such as: analysis, generating algorithms, profiling algorithms' accuracy and resource consumption, and the implementation of algorithms in a chosen programming language. The purpose of programming is to find a sequence of instructions that will automate the performance of a task (which can be as complex as an operating system) on a computer, often for solving a given problem. Proficient programming thus often requires expertise in several different subjects, including knowledge of the application domain, specialized algorithms, and formal logic. 什么是程序设计 From Wikipedia, 2020 程序设计:理解和分析问题,算法设计与分析,编程实现与调试
程序设计语言 什么是程序设计语言 From Wikipedia,2020 A programming language is a formal language comprising a set of instructions that produce various kinds of output.Programming languages are used in computer programming to implement algorithms 机器语言 汇编语言 抽象等级 高级语言:FORTRAN、C、C++、MATLAB、Python 面向过程:FORTRAN,C 程序设计方法 面向对象:C+、Java、MATLAB、Python 程序设计语言 编译型:FORTRAN、C、C+ 解释型:MATLAB、Python 程序编译方式 Language Pascal LGOL Obiect 混合型:Java、C# Lisp VB 强类型:FORTRAN、C、C++、JaVa 变量是否需要 明确指定类型 弱类型:MATLAB、Python Python http://math.ecnu.eau.cn/-jypan
http://math.ecnu.edu.cn/~jypan 程序设计语言 A programming language is a formal language comprising a set of instructions that produce various kinds of output. Programming languages are used in computer programming to implement algorithms 什么是程序设计语言 From Wikipedia, 2020
程序设计语言的发展 机器语言 CPU指令系统,由O、1构成的指令码组成: 是计算机唯一能识别并直接执行的语言 执行效率高 但编程复杂 汇编语言 用助记符号描述的指令系统如ADD,SUB; 需翻译成机器语言,符号化的机器语言 面向过程 高级语言 面向对象 http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 程序设计语言的发展 机器语言 汇编语言 高级语言 面向过程 面向对象 执行效率高 但编程复杂 CPU指令系统,由 0、1 构成的指令码组成; 是计算机唯一能识别并直接执行的语言 用助记符号描述的指令系统如 ADD, SUB; 需翻译成机器语言,符号化的机器语言
高级语言 高级语言 高级语言独立于机器,提高了语言的抽象层次 口更接近人类自然语言,编程方便 口不能直接被计算机识别,必须经过转换才能被执行 例:X=x+y;∥先计算x+y的值,然后赋值给x http://math.ecnu.edu.cn/-jypan
http://math.ecnu.edu.cn/~jypan 高级语言 高级语言 高级语言独立于机器,提高了语言的抽象层次 更接近人类自然语言,编程方便 不能直接被计算机识别,必须经过 转换 才能被执行 例:x = x + y; // 先计算 x + y 的值,然后赋值给 x
两种转换方式 解释类语言 由解释器把源程序翻译成机器语言,每翻译一条执行一条,每执行一次就要翻译一次 优点:比较灵活,可以动态地调整、修改应用程序 典型代表:MATLAB、Python 编译类语言 由编译器将源程序编译成目标程序,然后生成可执行程序 可执行程序可以脱离语言环境独立执行,可重复运行,使用方便,一般执行效率高 典型代表:FORTRAN、C、C++ http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 两种转换方式 解释类语言 ► 由解释器把源程序翻译成机器语言,每翻译一条执行一条,每执行一次就要翻译一次 ► 优点:比较灵活,可以动态地调整、修改应用程序 ► 典型代表:MATLAB、Python 编译类语言 ► 由编译器将源程序编译成目标程序,然后生成可执行程序 ► 可执行程序可以脱离语言环境独立执行,可重复运行,使用方便,一般执行效率高 ► 典型代表:FORTRAN 、C、C++
高级语言典型代表 FORTRAN:Formula Translation 1956年,由BM的W.Backus(哥伦比亚大学数学学士、硕士,图灵奖获得者) 带领开发,高级语言诞生的标志,科学计算主流语言 1972年,由贝尔实验室的D.M.Ritchie(哈佛大学数学博士,图灵奖获得者,UNIX之父) 开发,是一种通用的、过程式的编程语言,高效、灵活、功能丰富,主流的软件开发和科 学计算语言 C++ 1983年,由贝尔实验室的B.Stroustrup在C语言的基础上开发,引入并扩充了面向对象 的概念功能 数学,特别是数学思维是计算机科学的一个支柱。一B.Stroustrup http://math.ecnu.edu.cn/-jypan
http://math.ecnu.edu.cn/~jypan 高级语言典型代表 FORTRAN:Formula Translation 1956 年,由 IBM 的 J.W. Backus(哥伦比亚大学数学学士、硕士,图灵奖获得者) 带领开发,高级语言诞生的标志,科学计算主流语言 C 1972 年,由贝尔实验室的 D.M. Ritchie(哈佛大学数学博士,图灵奖获得者,UNIX 之父) 开发,是一种通用的、过程式的编程语言,高效、灵活、功能丰富,主流的软件开发和科 学计算语言 C++ 1983 年,由贝尔实验室的 B. Stroustrup 在 C 语言的基础上开发,引入并扩充了面向对象 的概念功能 数学,特别是数学思维是计算机科学的一个支柱。 —— B. Stroustrup
高级语言发展(部分) https://www.levenez.com/lang/ 5254565860626466687072747678808284868890929496 Ada Swit Modula-2 Pascal- PROCRAMMING wa· LANGUAGES ALGOL60 ALGOL68 R php) -CPLBCPL-B-C C++ .KKotin Smalltalk 80 Java Simula 67 BASIC- ANSI-BASIC QBASIC VB FORTRAN90 FORTRANo FORTRAN77 PL/1- COBOL C++ C Others LISPo PROLOG http://math.ecnu.edu.cn/~jypan
http://math.ecnu.edu.cn/~jypan 高级语言发展(部分) https://www.levenez.com/lang/
世界编程语言排行 https://www.tiobe.com/tiobe-index/ Programming Language 2023 2018 2013 2008 2003 1998 1993 1988 Python 4 > 12 24 18 2 1 2 3 1 Java 3 1 2 1 1 16 C++ 4 3 4 4 3 2 2 5 C# 5 8 9 Visual Basic 17 JavaScript 7 11 9 8 21 SQL 0 251 PHP 9 8 6 6 6 Assembly language 10 12 Fortran 19 30 27 21 13 8 16 Objective-C 22 16 3 41 55 Ada 26 28 21 19 16 14 5 3 Lisp 29 31 12 17 14 9 2 (Visual)Basic 7 3 2 6 http://mat.ccnypun
http://math.ecnu.edu.cn/~jypan 世界编程语言排行 https://www.tiobe.com/tiobe-index/