Lecture 1 1

504 views

Published on

This includes introductory part of principles of programming.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
504
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Lecture 1 1

  1. 1. Principles of Programming Languages Daniel von Dincklage1 1 Department of Computer Science University of Colorado 2005.05.31 Daniel von Dincklage CSCI 3155 1
  2. 2. Administrativa Evaluating languages Language implementation modelsThe 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
  3. 3. Administrativa Evaluating languages Language implementation modelsThe 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
  4. 4. Administrativa Evaluating languages Language implementation modelsGrading 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
  5. 5. Administrativa Evaluating languages Language implementation modelsWhy 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
  6. 6. Administrativa Evaluating languages Language implementation modelsApplications 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
  7. 7. Administrativa Evaluating languages Language implementation modelsExamples 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
  8. 8. Administrativa Evaluating languages Language implementation modelsA 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
  9. 9. Administrativa Evaluating languages Language implementation modelsWhat 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
  10. 10. Administrativa Evaluating languages Language implementation modelsLanguage 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
  11. 11. Administrativa Evaluating languages Language implementation modelsLanguage implementation • Compilation • Interpretation • Virtual Machine Daniel von Dincklage CSCI 3155 11

×