CS112: Structure of Programming Languages A smorgasbord of topics in programming languages including programming paradigms and syntax, semantics, implementation.

Slides:



Advertisements
Similar presentations
F28PL1 Programming Languages Greg Michaelson/Jamie Gabbay Lecture 0: Overview.
Advertisements

Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Chapter 8 High-Level Programming Languages. 8-2 Chapter Goals Describe the translation process and distinguish between assembly, compilation, interpretation,
Introduction to Programming Languages Nai-Wei Lin Department of Computer Science and Information Engineering National Chung Cheng University.
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 1 Overview A good programming language is.
High-Level Programming Languages
Programming Languages Structure
CSI Fall 2002 Dr. William A. Maniatty Assistant Prof. Dept. of Computer Science University At Albany Programming Languages and Systems Concepts Fall.
1 Run time vs. Compile time The compiler must generate code to handle issues that arise at run time Representation of various data types Procedure linkage.
Programming Paradigms cs784(Prasad)L5Pdm1. Programming Paradigm A way of conceptualizing what it means to perform computation and how tasks to be carried.
Summer 02-03Programming Language Concepts1 Programming Language Concepts (CS 360) Lecture 1: Overview, Grammars, and Little Languages Jeremy R. Johnson.
Building An Interpreter After having done all of the analysis, it’s possible to run the program directly rather than compile it … and it may be worth it.
Introduction & Overview CS4533 from Cooper & Torczon.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
Foundations of Programming Languages – Course Overview Xinyu Feng Acknowledgments: some slides taken or adapted from lecture notes of Stanford CS242
Overview. Copyright © 2006 The McGraw-Hill Companies, Inc. Chapter 1 Overview A good programming language is a conceptual universe for thinking about.
CS 355 – Programming Languages
(1.1) COEN 171 Programming Languages Winter 2000 Ron Danielson.
COP4020 Programming Languages
Chapter 1. Introduction.
CS 363 Comparative Programming Languages
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Adapted from Prof. Necula UCB CS 1641 Overview of COOL ICOM 4029 Lecture 2 ICOM 4029 Fall 2008.
LANGUAGE TRANSLATORS: WEEK 24 TRANSLATION TO ‘INTERMEDIATE’ CODE (overview) Labs this week: Tutorial Exercises on Code Generation.
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
1 Programming Language History and Evolution In Text: Chapter 2.
1 COMP 3438 – Part II-Lecture 1: Overview of Compiler Design Dr. Zili Shao Department of Computing The Hong Kong Polytechnic Univ.
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
Chapter 6 Programming Languages (2) Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Guided Notes Ch. 9 ADT and Modules Ch. 10 Object-Oriented Programming PHP support for OOP and Assignment 4 Term project proposal C++ and Java Designer.
1.  10% Assignments/ class participation  10% Pop Quizzes  05% Attendance  25% Mid Term  50% Final Term 2.
1 Programming Languages Fundamentals Cao Hoaøng Truï Khoa Coâng Ngheä Thoâng Tin Ñaïi Hoïc Baùch Khoa TP. HCM.
Chapter 1 Introduction. Chapter 1 - Introduction 2 The Goal of Chapter 1 Introduce different forms of language translators Give a high level overview.
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
Introduction to Code Generation and Intermediate Representations
Compilers: Overview/1 1 Compiler Structures Objective – –what are the main features (structures) in a compiler? , Semester 1,
Theory of Programming Languages Introduction. What is a Programming Language? John von Neumann (1940’s) –Stored program concept –CPU actions determined.
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 1 Overview A good programming language is.
1-1 1 Introduction  Programming linguistics: concepts and paradigms syntax, semantics, and pragmatics language processors.  Historical development of.
Programming Language Concepts (CIS 635) Elsa L Gunter 4303 GITC NJIT,
A Survey of Object-Oriented Concept Oscar Nierstrasz.
Objective of the course Understanding the fundamentals of the compilation technique Assist you in writing you own compiler (or any part of compiler)
Language Paradigms CS655.
Compiler Summary Lexical analysis—scanner – String of characters  token – Finite automata. Syntactical analysis – parser – Sequence of tokens –> language.
Programming Language History and Evolution
Chapter 1. Introduction.
Compilers Principles, Techniques, & Tools Taught by Jing Zhang
Programming Languages 2nd edition Tucker and Noonan
Why study programming languages?
Names and Attributes Names are a key programming language feature
Basic 1964 PC general purpose Imperative Small Easy to use.
PROGRAMMING LANGUAGES
CS 326 Programming Languages, Concepts and Implementation
课程名 编译原理 Compiling Techniques
Compiler Lecture 1 CS510.
Programming Language History and Evolution
Final Review In Text: Chapters 1-3, 5-11,
Midterm Review In Text: Chapters 1-3, 5, 15.
Final Review In Text: Chapters 1-3, 5-10,
Final Review In Text: Chapters 1-3, 5-10,
CS 3304 Comparative Languages Fall 2011
Programming Languages 2nd edition Tucker and Noonan
Final Review In Text: Chapters 1-3, 5-12,
Overview of Programming Paradigms
Compilers Principles, Techniques, & Tools Taught by Jing Zhang
Paradigms and paradigm shifts
Midterm Review In Text: Chapters 1-3, 5-11, 15.
ICOM 4029 Fall 2003 Lecture 2 (Adapted from Prof. Necula UCB CS 164)
Compiler Structures 1. Overview Objective
Presentation transcript:

CS112: Structure of Programming Languages A smorgasbord of topics in programming languages including programming paradigms and syntax, semantics, implementation of programming language features

Course Syllabus ● Course No. CS112 ● Title: Structure of Programming Languages ● Course Description: Selected topics in programming languages, including programming paradigms, and syntax, semantics, implementation of programming language features

Course Syllabus CS112: Struc of Prog Langs ● Course Objectives: The student should know the basics of lambda calculus, and its practical application to functional programming languages, write actual functional programs in Haskell, differentiate among the different programming paradigms: functional, imperative, declarative, and object-oriented, and study the syntax and semantics of imperative language features and their implementation.

Course Syllabus CS112: Struc of Prog Lang ● Course Outline & Time Frame: ● Lambda Calculus: expressions, reduction strategies, normalization theorem, Church's thesis. ● Functional programming as an implementation of Lambda Calculus: programming in Haskell, recursion. ● Declarative programming in Prolog. ● Imperative programming: memory map/segments of a running program, variables (scope, allocation, lifetime), parameter passing. Implementation of imperative features (in assembly language).

Course Syllabus CS112: Struc of Prog Lang ● Required readings: ● Michael Gordon, “Programming language theory and its implementation”, PH 1988 ● Gezzhi & Jazayerri, “Programming languages” ● Haskell online tutorial, ● Clocksin & Mellish, “Programming in Prolog”

CS112 Coverage of ACM Topics ● PL1. Overview of programming languages ● History of programming languages ● Brief survey of programming paradigms: Procedural, Object-oriented, Functional, Declarative (non-algorithmic), Scripting languages. ● The effects of scale on programming methodology ● PL2. Virtual machines ● concept of virtual machine, Hierarchy of virtual machines, Intermediate languages ● Security issues arising from running code on an alien machine

CS112 Coverage of ACM Topics ● PL3. Introduction to language translation ● Comparison of interpreters and compilers ● Language translation phases (lexical analysis, parsing, code generation, optimization) ● Machine-dependent and machine-independent aspects of translation

CS112 Coverage of ACM Topics ● PL4. Declarations and types ● The conception of types as a set of values with together with a set of operations ● Declaration models (binding, visibility, scope, and lifetime) ● Overview of type-checking ● Garbage collection

CS112 Coverage of ACM Topics ● PL5. Abstraction mechanisms ● Procedures, functions, and iterators as abstraction mechanisms ● Parameterization mechanisms (reference vs. value) ● Activation records and storage management ● Type parameters and parameterized types ● Modules in programming languages

CS112 Coverage of ACM Topics ● PL6. Object-oriented programming ● Object-oriented design, Encapsulation and information-hiding ● Separation of behavior and implementation ● Classes and subclasses, Inheritance (overriding, dynamic dispatch) ● Polymorphism (subtype polymorphism vs. inheritance) ● Class hierarchies, Collection classes and iteration protocols ● Internal representations of objects and method tables

CS112 Wish List ● See CC2001