PHP、Java、Python、C、C++ 这几种编程语言都各有什么优点或特点?
序 —— 一些问题
程序设计语言的目的是什么?
为什么大多数语言有控制流?逐行执行+跳转。这与我们的需求差很远(例如一个教务管理系统、一个自动打车APP)
为什么类型申明在C语言中要与控制流隔离开来?
现在主流语言最基本的元素是?
有没有语言它的类型结构,在运行时也可以改变?
动态性?什么是动态性?
编译后确定了什么信息,之后不再改变;
运行时可以改变、添加什么;
运行时是否保存着类型信息。
程序中的信息分为几类?
数据信息
a) 编译时Meta-Data元数据(类型框架、空间占用)
b) 运行时Meta-Data元数据(继承体系、用于new或者反射)(特别区别编译与运行的Meta-Data的不同。)
c) 堆栈段中地址偏移(C++的switch case中不能声明变量、共享内存)
d) 静态段中地址指令信息
a) 代码段(动态性需要操作系统或者虚拟机支持,例如动态链接库,动态类加载,lisp语言自生成代码)
语言举例
汇编语言
汇编语言没有动态性吗?没有。首先,寄存器、数据段、堆栈、代码段完全由程序员控制。完完全全是写死了的。然后,根据冯诺伊曼机的规则;取指令,执行,取指令,执行……
既然都有数据段了,还要堆栈段来做什么?这不是多余?
一开始本没有堆栈,直到60年代出现了module模块化,才有了堆栈。汇编中的模块叫子程序,不过仍旧靠程序员全权控制。