Kenneth C.Louden的《程序设计语言——原理与实践》的一点笔记
2007-08-28 11:51
246 查看
编程范式:面向对象程序设计(C++、Java、Smalltalk)、函数式程序设计(Scheme、Haskell、ML)、逻辑式程序设计(Prolog)。
以拜伦之女Ada(历史上第一位程序员:分析机)命名的Ada。
FORTRAN(FORmula TRANslation)
COBOL(公共的面向商业语言)——设计目的是使他人能够阅读程序元设计的程序,因而语法复杂。
Algol:Pascal、C、Ada的鼻祖。
LISP(LISt Processor):Common LISP、Scheme。垃圾回收、递归。
APL:函数式风格、具有大运算符集、要使用特殊终端的希腊符号集、运算能力强大、非结构化。深刻地影响的FP。
BASIC(Beginners All-purpose Symbolic Code)。
趋势:Web编程、库以及脚本语言。
C++设计时的指导思想:
不应无故不兼容(C和其他系统和语言)
其发展应由实际编程需要驱动而非由理论上的考虑。
不因有可能就增加一个纯粹的特性
任何新增特性的实现,必须以不降低程序运行效率为前提,至少也要保证不增加额外开销。
不应强调单一程序设计形式。
维持和强化其强类型检查特点
“你不知道的东西不会伤害你”
Scheme的语法:
expression -> atom | list
atom -> number | string | identifier | character | boolean
list -> `(' expression-sentence `)'
expression-sentence -> expression expression-sentence | expression
Scheme的核心内容:
表达式中operator要写为前缀(prefix)
读入-求值-打印 循环。避免求值:quote list | ' list
(if 条件 真时的值 假时的值)
(cond (条件1 值1) (条件2 值2) (条件3 值3) (else 缺省值))
没有变量。常量:(define 名字 值),在“将一个名字约束到一个值”的意义上理解。同样的方式可以定义函数。
暂时约束:(let ((名字1 值1) (名字2 值2)) expression)
I/O: (read) 、(display 内容) 、(newline)
表操作:若L为(1 2 3) ,(car L) 为1,(cdr L)为(2 3), (cons 4 L)为 (4 1 2 3)。
λ演算:(lamda param-list body)
以拜伦之女Ada(历史上第一位程序员:分析机)命名的Ada。
FORTRAN(FORmula TRANslation)
COBOL(公共的面向商业语言)——设计目的是使他人能够阅读程序元设计的程序,因而语法复杂。
Algol:Pascal、C、Ada的鼻祖。
LISP(LISt Processor):Common LISP、Scheme。垃圾回收、递归。
APL:函数式风格、具有大运算符集、要使用特殊终端的希腊符号集、运算能力强大、非结构化。深刻地影响的FP。
BASIC(Beginners All-purpose Symbolic Code)。
趋势:Web编程、库以及脚本语言。
C++设计时的指导思想:
不应无故不兼容(C和其他系统和语言)
其发展应由实际编程需要驱动而非由理论上的考虑。
不因有可能就增加一个纯粹的特性
任何新增特性的实现,必须以不降低程序运行效率为前提,至少也要保证不增加额外开销。
不应强调单一程序设计形式。
维持和强化其强类型检查特点
“你不知道的东西不会伤害你”
Scheme的语法:
expression -> atom | list
atom -> number | string | identifier | character | boolean
list -> `(' expression-sentence `)'
expression-sentence -> expression expression-sentence | expression
Scheme的核心内容:
表达式中operator要写为前缀(prefix)
读入-求值-打印 循环。避免求值:quote list | ' list
(if 条件 真时的值 假时的值)
(cond (条件1 值1) (条件2 值2) (条件3 值3) (else 缺省值))
没有变量。常量:(define 名字 值),在“将一个名字约束到一个值”的意义上理解。同样的方式可以定义函数。
暂时约束:(let ((名字1 值1) (名字2 值2)) expression)
I/O: (read) 、(display 内容) 、(newline)
表操作:若L为(1 2 3) ,(car L) 为1,(cdr L)为(2 3), (cons 4 L)为 (4 1 2 3)。
λ演算:(lamda param-list body)
相关文章推荐
- 新手笔记之判断一点是否在圆内
- webshell防范的一点笔记
- 程序员面试宝典的一点笔记
- Linux的一点笔记
- emacs 的一点笔记
- 初学struts2的一点笔记(struts2.1.6、struts2.2.1)
- 每天学一点flash(30) new Timer的函数 学习笔记
- windows XP系统中使用visual studio 2010的一点小笔记
- 每天学习一点flash(35) 游戏设计笔记 (5) 跳跃算法笔记
- 关于xls的一点笔记
- java学习笔记1-关于throw和throws的一点总结
- 关于main参数和inp.c代码阅读的一点笔记
- 【JavaScript】正则表达式--String.replace()变量替换的一点笔记
- 学node的一点小笔记(六) 全局对象
- STL的一点笔记
- 阅读xtrabackup代码的一点笔记
- InnoDB内部实现一点笔记
- 做网站的一点笔记(菜鸟级别 4000 ,请指正)
- 《无废话XML》的一点笔记
- Shell学习笔记(3)-一个复杂一点的Shell程序