程序设计语言原理 谭文安 南京航空航天大学 信息科学与技术学院 [email protected] ISBN 0-321-19362-8 主要参考书 • Concepts of Programming Languages ( Sixth Edition ) Robert W. Sebesta,机械工业出版社,2002 • 程序设计语言:设计与实现 Terrence W.Pratt, Matvin V.Zelkowitz 傅育熙,黄林鹏等译,电子工业出版社,2002 • 程序设计语言概念和结构 Ravi Sethi 著, 裘宗燕等译,机械工业出版社,2002 • 程序设计语言原理 钱树人, 高等教育出版社,2001 1-2 教学环节和成绩评定 教学环节:课堂讲授 课外阅读 成绩评定:期末考试 + 偶尔点名 1-3 Chapter 1 Topics • • • • • • • • Motivation Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language Design Trade-Offs Implementation Methods Programming Environments 1-4 Motivation: Why Study Programming Languages? • Increased ability to express ideas • Improved background for choosing appropriate languages • Greater ability to learn new languages • Understand significance of implementation • Ability to design new languages • Overall advancement of computing 1-5 Programming Domains • Scientific applications – Large number of floating point computations – Fortran90 Algol60 … • Business applications – Produce reports, use decimal numbers and characters – COBOL Language … • Artificial intelligence – Symbols rather than numbers manipulated – LISP(函数式的), Prolog语言,逻辑程序设计 • Systems programming – Need efficiency because of continuous use – Unix OS, C语言函数 • Scripting languages – Put a list of commands in a file to be executed – Shell命令文件,…,JavaScript语言(Netscape) • Special-purpose languages 1-6 Language Evaluation Criteria • Readability – The most important criteria – Factors: • Overall simplicity – Too many features is bad; count++; ++count, 运算符重载 • Orthogonality 正交性 – Makes the language easy to learn and read – Meaning is context independent – A relatively small set of primitive constructs can be combined in a relatively small number of ways – Every possible combination is legal – Lack of orthogonality leads to exceptions to rules 1-7 Language Evaluation Criteria – Readability factors (continued) • Control statements – Goto语句 • Defining data types and structures – Boolean变量定义 True/False 1/0 – 数组定义,下标变量 • Syntax considerations – Identifier forms Fortran77标示符长度<=6 – Special words Pascal的 begin – end Ada的 end if , end loop Fortran 90中, DO和END是合法的变量名 1-8 Language Evaluation Criteria • Writability—可写性 – Factors: • Simplicity and orthogonality • Support for abstraction( including data & procedure ) • Expressivity表达性 • Reliability—可靠性 – Factors: • • • • Type checking 函数调用参数传递 Exception handling 异常处理能力 Aliasing 别名使用是一个危险的特性 Readability and Writability 1-9 Language Evaluation Criteria • Cost – Categories • • • • • • • Training programmers to use language Writing programs Compiling programs Executing programs Language implementation system Reliability Maintaining programs 1-10 Influences on Language Design • Computer architecture: Von Neumann We use imperative languages, at least in part, because we use von Neumann machines – – – – Data and programs stored in same memory Memory is separate from CPU Instructions and data are piped from memory to CPU Basis for imperative languages • Variables model memory cells • Assignment statements model piping • Iteration is efficient 1-11 Von Neumann Architecture 1-12 Influences on Language Design • Programming methodologies – 1950s and early 1960s: Simple applications; worry about machine efficiency – Late 1960s: People efficiency became important; readability, better control structures • Structured programming • Top-down design and step-wise refinement – Late 1970s: Process-oriented to data-oriented • data abstraction – Middle 1980s: Object-oriented programming 1-13 Language Categories • Imperative --命令式语言 – Central features are variables, assignment statements, and iteration – C, Pascal • Functional --函数式语言 – Main means of making computations is by applying functions to given parameters – LISP, Scheme 1-14 Language Categories • Logic --逻辑语言 – Rule-based – Rules are specified in no special order – Prolog • Object-oriented --面向对象语言 – – – – Encapsulate data objects with processing Inheritance and dynamic type binding Grew out of imperative languages C++, Java 1-15 Language Design Trade-Offs • Reliability vs. cost of execution ( Eg. Ada ) • Readability vs. writability • Flexibility vs. safety 1-16 Layered View of Computer 1-17 Implementation Methods • Compilation – Translate high-level program to machine code – Slow translation – Fast execution 1-18 Compilation Process 1-19 Implementation Methods • Pure interpretation – No translation – Slow execution – Becoming rare 1-20 Pure Interpretation 1-21 Implementation Methods • Hybrid implementation systems – Small translation cost – Medium execution speed 1-22 Hybrid Implementation System 1-23 Programming Environments • The collection of tools used in software development • UNIX – An older operating system and tool collection • Borland JBuilder – An integrated development environment for Java • Microsoft Visual Studio.NET – A large, complex visual environment – Used to program in C#, Visual BASIC.NET, Jscript, J#, or C++ 1-24
© Copyright 2025 Paperzz