Sunteți pe pagina 1din 11

Principles of Programming Languages

Daniel von Dincklage1

1 Department of Computer Science


University of Colorado

2005.05.31

Daniel von Dincklage CSCI 3155 1


Administrativa
Evaluating languages
Language implementation models

The Course

http://www-plan.cs.colorado.edu/danielvd/teaching/3155-s05/

• CSCI 3155, Principles of Programming Languages


• M,T,W,R 11:00am – 02:45pm, ECCR 105

How to contact me:


• Daniel von Dincklage: danielvd+csci3155@colorado.edu

Daniel von Dincklage CSCI 3155 2


Administrativa
Evaluating languages
Language implementation models

The Course

Important Dates:
• June 15th: Midterm
• July 1st: Final Exam
Office hours:
• the hour before class
Textbook:
• Concepts of Programming Languages, 6th ed., Robert W.
Sebesta, ISBN 0-321-19362-8

Daniel von Dincklage CSCI 3155 3


Administrativa
Evaluating languages
Language implementation models

Grading and other things

• Homework: 30 %
• Participation: 30 %
• Exams: 40 %

• Homeworks are due before start of the class on the due date;
no late homework will be accepted!
• Collaboration

Daniel von Dincklage CSCI 3155 4


Administrativa
Evaluating languages
Language implementation models

Why study programming languages?

• requirement
• Increased capacity to express ideas
• Improved background for choosing languages
• Increased ability to learn new languages
• Better understanding of implementations (and so better
debugging skill)
• Increase ability to design new languages
• Overall advancements of Computing
• others?

Daniel von Dincklage CSCI 3155 5


Administrativa
Evaluating languages
Language implementation models

Applications of programming languages

• Scientific applications
• Business Applications
• Artificial Intelligence
• Systems Programming
• Scripting
• Web Programming
• Special Purpose: communications, compiler generation,
mathematics, . . .
• others?

Daniel von Dincklage CSCI 3155 6


Administrativa
Evaluating languages
Language implementation models

Examples of languages

• Scientific applications: Fortran,


• Business Applications: ABAP, COBOL, . . .
• Artificial Intelligence: Lisp, Scheme, Prolog, . . .
• Systems Programming: C, . . .
• Scripting: awk, Shells, perl, . . .
• Web Programming: JavaScript, PHP, . . .
• Special Purpose: communications (Erlang), compiler
generation (Yacc), mathematics (Mathematica), . . .
• others?

Daniel von Dincklage CSCI 3155 7


Administrativa
Evaluating languages
Language implementation models

A broad taxonomy of languages

• Imperative
• The order of statements defines the order of execution
• Examples: C, C++, Pascal, Lisp, Fortran, . . .
• Object-Oriented
• Methods and Data are encapsulated in Objects
• Examples: Eiffel, C++, Java, Lisp, . . .
• Functional
• The order of statements defines the order of execution
• Examples: ML, Lisp, Haskell, . . .
• Logic
• Facts supplied by the user are processed according to rules
• Examples: Prolog, Goedel, . . .

Daniel von Dincklage CSCI 3155 8


Administrativa
Evaluating languages
Language implementation models

What makes a language good or bad?

The key criterion is the effort required to produce and maintain a


given program.
• Readability
• Important for understanding what a given program does
• Writability
• Important for writing a program
• Reliability
• Important for whether a program works as expected

Daniel von Dincklage CSCI 3155 9


Administrativa
Evaluating languages
Language implementation models

Language features that influence the effort

• Simplicity/Orthogonality
• Control structures
• Data types & structures
• Syntax design
• Support for abstraction
• Expressivity
• Type checking
• Exception handling
• Restricted aliasing

Daniel von Dincklage CSCI 3155 10


Administrativa
Evaluating languages
Language implementation models

Language implementation

• Compilation
• Interpretation
• Virtual Machine

Daniel von Dincklage CSCI 3155 11

S-ar putea să vă placă și