Introduction to CS 550 Programming Languages Jeremy Johnson












![Software (GHC) quicksort : : (Ord a) => [a] -> [a] quicksort [] = Software (GHC) quicksort : : (Ord a) => [a] -> [a] quicksort [] =](https://slidetodoc.com/presentation_image_h2/cd363bd297f9115d023258aec2be00ea/image-13.jpg)




- Slides: 17

Introduction to CS 550 Programming Languages Jeremy Johnson Drexel University

Course Description v Covers basic concepts of the design and implementation of programming languages, including data representation and types, functions, sequence control, environments, block structure, subroutines and coroutines, storage management. Emphasizes language features and implementation, not mastery of any particular languages. 2

Course Prerequisites v CS 520, 570 and 571 v Assumes familiarity with the basics of logic (predicate calculus), recursion and induction, data structures, automata, and grammars. All students should be proficient with at least one object-oriented programming language, e. g. , Java or C++, be familiar with inheritance, polymorphism, and should have seen at least two different programming languages. 3

Course Themes v Evaluation and implementation of programming languages. v Tools for describing and analyzing languages, including syntax, semantics, and pragmatics. v Tools to design new languages. v Proving properties of programs and programming languages* v Formal methods* *New emphasis. Will use Coq Proof Assistant. Formal methods having industrial impact [e. g. Sel 4, Comp. Cert] 4

Course Objectives v Be able to formally specify the syntax and semantics of programming languages. v Be able to prove properties of programs using both equational reasoning and structural induction. v Be able to use a proof assistant to formally prove properties of programs and programming languages v Be able to implement an interpreter for a simple programming language. v Be able to formally specify a type system and understand the type inference process. v Understand how to use a strongly typed language's type system to capture program invariants. 5

Course Benefits v Better able to formally express concepts and reason about them v Become a better programmer and write programs with fewer bugs v Improved ability to select appropriate languages and programming constructs v Better understand programming languages and their design tradeoffs v Easier to learn new languages v Able to design and implement new languages (little languages, interface specifications, protocols) 6

Course Topics v Functional Programming and Equational Reasoning (Dr. Racket, SICP) v Operational Semantics for Scheme (SICP) v Streams and Delayed Evaluation (SICP) v Lambda Calculus (TAPL) v Haskell and Introduction to Types (H) v Introduction Coq (SF) v Operational Semantics and Formal Verification (SF) v Hoare Logic (SF) v Types (SF) 7

Textbook v Abelson and Sussman, Structure and Interpretation of Computer Programs (SICP) https: //mitpress. mit. edu/sicp/ 8

Textbook v Benjamin Pierce, Types and Programming Languages (TAPL) www. cis. upenn. edu/~bcpierce/tapl/index. html (available online through Drexel Library) 9

Textbook v Miran Lipovača, Learn You a Haskell for Great Good! (LYHGG) http: //learnyouahaskell. com/ 10

Textbook v Benjamin Pierce et al. , Software Foundations (SF) www. cis. upenn. edu/~bcpierce/sf/current/index. html 11

Software (Dr. Racket) racket-lang. org 12
![Software GHC quicksort Ord a a a quicksort Software (GHC) quicksort : : (Ord a) => [a] -> [a] quicksort [] =](https://slidetodoc.com/presentation_image_h2/cd363bd297f9115d023258aec2be00ea/image-13.jpg)
Software (GHC) quicksort : : (Ord a) => [a] -> [a] quicksort [] = [] quicksort (x: xs) = let smaller. Sorted = quicksort [a | a <- xs, a <= x] bigger. Sorted = quicksort [a | a <- xs, a > x] in smaller. Sorted ++ [x] ++ bigger. Sorted www. haskell. org 13

Software (Coq) coq. inria. fr 14

Grading v Course Requirements and Grading 1. Class Participation (10 2% = 20%) v In class exercises – online students submit offline v Graded for effort 2. Five Bi-weekly homework assignments (5 10% = 50%) v Done in pairs 3. Midterms (15%) and Final (15%) exam v Online Midterm week 6 v Online Final exam during finals week 15

Class Logistics v Announcements will be posted in piazza v Use Piazza to ask questions § I will regularly monitor and reply to questions in a timely manner v Office hours M 8 -9 online, R 4 -6. v Assignments will be due by 9 am on Thur every other week starting with week 3 § Late assignments will be accepted through Sunday at 9 am with a 10% per day penalty 16

Class Logistics v In class exercises (10 2) § Worth 2 points each § Labs may be done with a partner and will be graded in class for effort § Online students submit lab by the following Monday @ 9 am v Don’t fall behind § Come to class prepared § Go to office hours and get help if you are having difficulty 17