手记

PHP、Java、Python、C、C++ 这几种编程语言都各有什么优点或特点?(一)

PHP、Java、Python、C、C++ 这几种编程语言都各有什么优点或特点?

序 —— 一些问题

  1. 程序设计语言的目的是什么?

  2. 为什么大多数语言有控制流?逐行执行+跳转。这与我们的需求差很远(例如一个教务管理系统、一个自动打车APP)

  3. 为什么类型申明在C语言中要与控制流隔离开来?

  4. 现在主流语言最基本的元素是?

  5. 有没有语言它的类型结构,在运行时也可以改变?

动态性?什么是动态性?

  1. 编译后确定了什么信息,之后不再改变;

  2. 运行时可以改变、添加什么;

  3. 运行时是否保存着类型信息。

程序中的信息分为几类?

  1. 数据信息
    a) 编译时Meta-Data元数据(类型框架、空间占用)
    b) 运行时Meta-Data元数据(继承体系、用于new或者反射)(特别区别编译与运行的Meta-Data的不同。)
    c) 堆栈段中地址偏移(C++的switch case中不能声明变量、共享内存)
    d) 静态段中地址

  2. 指令信息
    a) 代码段(动态性需要操作系统或者虚拟机支持,例如动态链接库,动态类加载,lisp语言自生成代码)

语言举例

汇编语言

汇编语言没有动态性吗?没有。首先,寄存器、数据段、堆栈、代码段完全由程序员控制。完完全全是写死了的。然后,根据冯诺伊曼机的规则;取指令,执行,取指令,执行……

既然都有数据段了,还要堆栈段来做什么?这不是多余?

一开始本没有堆栈,直到60年代出现了module模块化,才有了堆栈。汇编中的模块叫子程序,不过仍旧靠程序员全权控制。



1人推荐
随时随地看视频
慕课网APP