程序设计语言原理 门理论性较强的提高型课程,从更高的层 次来理解各种语言机制,指导对计算机语言的学 习和程序设计 分析并理解各类高级程序设计语言范型与理 论模型 掌握程序设计语言各主要成分设计中的关键 问题、主要步骤、表示法的基本技能, 学会分析、选择、调合、折中、设计语言的 特征 第2页
第2页 程序设计语言原理 一门理论性较强的提高型课程,从更高的层 次来理解各种语言机制,指导对计算机语言的学 习和程序设计 • 分析并理解各类高级程序设计语言范型与理 论模型 • 掌握程序设计语言各主要成分设计中的关键 问题、主要步骤、表示法的基本技能, • 学会分析、选择、调合、折中、设计语言的 特征
第0章导论 什么是程序设计语言(PL) 为什么研究PL ·语言规范与处理器 本课程内容与要求 第6页
第6页 第0章 导 论 • 什么是程序设计语言(PL) • 为什么研究PL • 语言规范与处理器 • 本课程内容与要求
601什么是程序设计语言(PL)? 人机通信媒体(介),软件的载体 人工语言机器识别,方便人使用 形式语言无二义性 必须可执行 它是计算机科学与计算机工程的交汇点 计算机科学是在符号学、集合论、离散数学、 组合数学基础上发展的 以符号语言表达的软件还要满足正确性、可 靠性、安全性、可扩充、可移植、方便性 第7页
第7页 0.1 什么是程序设计语言(PL)? • 人机通信媒体(介),软件的载体 – 人工语言 机器识别,方便人使用 – 形式语言 无二义性 – 必须可执行 • 它是计算机科学与计算机工程的交汇点 – 计算机科学是在符号学、集合论、离散数学、 组合数学基础上发展的 – 以符号语言表达的软件还要满足正确性、可 靠性、安全性、可扩充、可移植、方便性
1900 Giuseppe Peano集合论(1895) 910 Alfred north Whitehead, Bertrand russell符号逻辑(1910) 920 自动数学POST 不完全理论, Goedel(1931) 1930POST系统—递归函数论可计算理论 Church, Rosser(1930s) Turing(1936) 940 信息论 Shannon 电子学 形式语言理论 950 Chomsky 开关理论 960形式语法定义 自动化理论 Backus和Naur 1970Kuh:词法分析方法 复杂性理论 编译理论 编译的编译 EL/l:可扩展式语法 diffie 计算机密码学(1976) 980 e.Hellman 随机算法 公共密钥系统(1978) Rivest shamir. Adelman 1990 第8页
第8页 1900 1930 1940 1950 1960 1970 1980 1990 1910 1920 自动数学 POST Alfred North Whitehead BertrandRussell 符号逻辑(1910) 不完全理论 , Goedel(1931) Giuseppe Peano集合论(1895) POST系统 递归函数论 Church,Rosser(1930s) 可计算理论 Turing(1936) 信息论Shannon 形式语法定义 Backus 和Naur 随机算法 形式语言理论 Chomsky 自动化理论 电子学 开关理论 复杂性理论 计算机密码学(1976) Diffie,Hellman 公共密钥系统(1978) Rivest,Shamir,Adelman Knuth:词法分析方法 编译理论 编译的编译 EL/1:可扩展式语法
1930POST系统 递归函数理论 可计算理论 Church, Rosser(1930s) Turing ( 1936) 940 λ演算 Church(1941) 950 程序正确性和验证(1960s 1960 引用透明, Strachey 形式语义定义 SECD机 Landing(194) PL/的 Vienna定义(1967) 指称语义学(1971) 并发性 Scott, Strachey) Dijkstra(1968) Mime类型理论(1978) Hoare: CPS(1978 分布式计算 amport 980 函数式语言 ML Miranda haskell 协作计算1988 990 第9页
第9页 1930 1940 1950 1960 1970 1980 1990 POST 系统 递归函数理论 Church,Rosser(1930s) 可计算理论 Turing(1936) λ演算 Church(1941) 程序正确性和验证(1960s) 引用透明,Strachey 形式语义定义 SECD机,Landin(1964) PL/1的Vienna定义(1967) 指称语义学(1971) Scott,Strachey) Milner:类型理论(1978) 函数式语言: ML Miranda Haskell 并发性 Dijkstra(1968) Hoare:CPS(1978) 分布式计算 Lamport 协作计算1988