计算机系统从硬件到软件,从指令集到汇编语言到高级编程语言(指令集是CPU的抽象),都是抽象层次的不断升级。
同时,抽象可以实现数据隐藏,接口与实现分离。抽象层次越高,代码的颗粒度越大,编译器的翻译工作就越多,越复杂。
编程范式与指令、数据的自由度约束:
结构化编程语言使用三种控制结构来约束goto的随意跳转。
面向对象编程语言提供了类作用域,通过封装使用了较大的编码颗粒度。
函数式编程语言是对数据状态的一种约束。
编程语言的编程范式:抽象什么?以及角色分工:
面向过程编程语言:抽象过程或功能为函数;
面向对象编程语言:抽象数据类型或对象为类;
角色分工包括库或接口的设计者、实现者、使用者。也包括编译器与程序员的分工,一些语法机制或功能可以由编译器完成,也可以由程序员手工完成,如动态内存管理,由程序员完成,自然可以获得更高的效率,但安全性较差,代码较繁琐。也可以由编译器来完成,如GC,但有附带的性能成本。
-End-
留言与评论(共有 0 条评论) “” |