SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Ähnlich wie Lecture 1 1

Introduction to NLP.pptx
Introduction to NLP.pptxIntroduction to NLP.pptx
Introduction to NLP.pptxjkamble
 
Agile Localization: Oxymoron or Heroic Achievement?
Agile Localization: Oxymoron or Heroic Achievement?Agile Localization: Oxymoron or Heroic Achievement?
Agile Localization: Oxymoron or Heroic Achievement?Laura Dent
 
Design patterns
Design patternsDesign patterns
Design patternsDivanshu N
 
Linq presentation by vaidhesh
Linq presentation by vaidheshLinq presentation by vaidhesh
Linq presentation by vaidheshVaidheswaran CS
 
Feedback on DDD Europe - short -event storming.pptx
Feedback on DDD Europe - short -event storming.pptxFeedback on DDD Europe - short -event storming.pptx
Feedback on DDD Europe - short -event storming.pptxGuillaume Saint Etienne
 
Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)IT Arena
 
Machine Learning Vs. Deep Learning – An Example Implementation
Machine Learning Vs. Deep Learning – An Example ImplementationMachine Learning Vs. Deep Learning – An Example Implementation
Machine Learning Vs. Deep Learning – An Example ImplementationSynerzip
 
Needs of Other November2011
Needs of Other November2011Needs of Other November2011
Needs of Other November2011Razi Masri
 
The 360 Developer
The 360 DeveloperThe 360 Developer
The 360 Developerenteritos
 
Agile Offsharing: Using Pair Work to Overcome Nearshoring Difficulties
Agile Offsharing: Using Pair Work to OvercomeNearshoring DifficultiesAgile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties
Agile Offsharing: Using Pair Work to Overcome Nearshoring DifficultiesMobileSolutionsDTAG
 
The Software Engineering Discipline and Evolution of S/W Engineering Methodol...
The Software Engineering Discipline and Evolution of S/W Engineering Methodol...The Software Engineering Discipline and Evolution of S/W Engineering Methodol...
The Software Engineering Discipline and Evolution of S/W Engineering Methodol...Santhia RK
 
Best Practices for Software Localization
Best Practices for Software LocalizationBest Practices for Software Localization
Best Practices for Software LocalizationLionbridge
 
10 Hinweise für Architekten
10 Hinweise für Architekten10 Hinweise für Architekten
10 Hinweise für Architektenadesso AG
 
Programming language design and implemenation
Programming language design and implemenationProgramming language design and implemenation
Programming language design and implemenationAshwini Awatare
 
Umid Abdullaev-resume-2015-02-14
Umid Abdullaev-resume-2015-02-14Umid Abdullaev-resume-2015-02-14
Umid Abdullaev-resume-2015-02-14Umid Abdullaev
 

Ähnlich wie Lecture 1 1 (20)

Introduction to NLP.pptx
Introduction to NLP.pptxIntroduction to NLP.pptx
Introduction to NLP.pptx
 
Agile Localization: Oxymoron or Heroic Achievement?
Agile Localization: Oxymoron or Heroic Achievement?Agile Localization: Oxymoron or Heroic Achievement?
Agile Localization: Oxymoron or Heroic Achievement?
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Lecture_1 & 2.pptx
Lecture_1 & 2.pptxLecture_1 & 2.pptx
Lecture_1 & 2.pptx
 
Linq presentation by vaidhesh
Linq presentation by vaidheshLinq presentation by vaidhesh
Linq presentation by vaidhesh
 
Feedback on DDD Europe - short -event storming.pptx
Feedback on DDD Europe - short -event storming.pptxFeedback on DDD Europe - short -event storming.pptx
Feedback on DDD Europe - short -event storming.pptx
 
Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)
 
Machine Learning Vs. Deep Learning – An Example Implementation
Machine Learning Vs. Deep Learning – An Example ImplementationMachine Learning Vs. Deep Learning – An Example Implementation
Machine Learning Vs. Deep Learning – An Example Implementation
 
Needs of Other November2011
Needs of Other November2011Needs of Other November2011
Needs of Other November2011
 
The 360 Developer
The 360 DeveloperThe 360 Developer
The 360 Developer
 
It's XP, Stupid
It's XP, StupidIt's XP, Stupid
It's XP, Stupid
 
Professional programming foundation - Baabtra - Starter slide
Professional programming foundation - Baabtra  - Starter slideProfessional programming foundation - Baabtra  - Starter slide
Professional programming foundation - Baabtra - Starter slide
 
Agile Offsharing: Using Pair Work to Overcome Nearshoring Difficulties
Agile Offsharing: Using Pair Work to OvercomeNearshoring DifficultiesAgile Offsharing: Using Pair Work to OvercomeNearshoring Difficulties
Agile Offsharing: Using Pair Work to Overcome Nearshoring Difficulties
 
Programming assignment help
Programming assignment helpProgramming assignment help
Programming assignment help
 
The Software Engineering Discipline and Evolution of S/W Engineering Methodol...
The Software Engineering Discipline and Evolution of S/W Engineering Methodol...The Software Engineering Discipline and Evolution of S/W Engineering Methodol...
The Software Engineering Discipline and Evolution of S/W Engineering Methodol...
 
Best Practices for Software Localization
Best Practices for Software LocalizationBest Practices for Software Localization
Best Practices for Software Localization
 
Introduction
IntroductionIntroduction
Introduction
 
10 Hinweise für Architekten
10 Hinweise für Architekten10 Hinweise für Architekten
10 Hinweise für Architekten
 
Programming language design and implemenation
Programming language design and implemenationProgramming language design and implemenation
Programming language design and implemenation
 
Umid Abdullaev-resume-2015-02-14
Umid Abdullaev-resume-2015-02-14Umid Abdullaev-resume-2015-02-14
Umid Abdullaev-resume-2015-02-14
 

Lecture 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. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. Administrativa Evaluating languages Language implementation models Language implementation • Compilation • Interpretation • Virtual Machine Daniel von Dincklage CSCI 3155 11