Unformatted text preview:

1CS 538 Spring 2006©CS 538Introduction to the Theory andDesign of ProgrammingLanguagesCharles N. FischerSpring 2006 http://www.cs.wisc.edu/~fischer/cs538.html2CS 538 Spring 2006©Class MeetsMondays, Wednesdays & Fridays,1:20 — 2:101325 Computer SciencesInstructorCharles N. Fischer6367 Computer SciencesTelephone: 262-6635E-mail: [email protected] Hours:10:30 - Noon, Tuesdays &Thursdays, or by appointment3CS 538 Spring 2006©Key Dates• February 22: Homework #1 (tentative)• March 8: Midterm Exam (tentative)• March 22: Programming Assignment #1 - Scheme (tentative)• April 14: Programming Assignment #2 - Standard ML (tentative)• April 28: Programming Assignment #3 - Prolog (tentative)• May 5: Programming Assignment #4 - Java, C#, Pizza and Python(optional)• May 12: Final Exam 7:45am-9:45am4CS 538 Spring 2006©Class Text• Required text:“Foundations of ProgrammingLanguages,”Seyed Roosta,Brooks/Cole, 2003.• Suggested supplemental Class Text:“Modern Programming Languages,”Adam Webber,Franklin, Beedle & Associates, 2003.• Handouts and Web-based reading willalso be used.5CS 538 Spring 2006©Reading Assignment• Roosta: Chapters 1-3 (as background)• Webber: Chapters 1, 10, 18 (asbackground)Class Notes• Each lecture will be made available priorto, and after, that lecture on the classWeb page (under the “Lecture Nodes”link).6CS 538 Spring 2006©Instructional ComputersDepartmental Linux Machines(royal1-royal30, emperor01-emperor40) have been assigned to CS538. All necessary compiler,interpreters and tools will be loadedonto these machines.You may also use your own PC orworkstation. It will be yourresponsibility to load needed software(instructions on where to find neededsoftware are included on the classweb page).The Systems Lab teaches brieftutorials on Linux if you areunfamiliar with that OS.7CS 538 Spring 2006©Academic Misconduct Policy• You must do your own assignments —no copying or sharing of solutions.• You may discuss general concepts andIdeas.• All cases of misconduct must be reportedto the Dean’s office.• Penalties may be severe.8CS 538 Spring 2006©Program & Homework LatePolicy• An assignment may be handed in up to 7days late, but no later.• Each day late will be debited 4%, up to amaximum of 28%.• All students are given 10 “free” latedays. That is, the first 40% in late debitswill be automatically forgiven.• Your 10 free late days my be used at anytime, and in any combination.9CS 538 Spring 2006©Approximate Grade WeightsHomework 1 10%Program 1 - Scheme 16%Program 2 - ML 16%Program 3 - Prolog 12%Program 4 - Java, C#, Pizzaand Python(optional)10%Midterm Exam 23%Final Exam (non-cumulative) 23%10CS 538 Spring 2006©Programming Languages to beConsidered in Detail1. SchemeA modern variant of Lisp.A Functional Language: Functions are“first class” data values.Dynamically Typed: A variable’s typemay change during execution; notype declarations are needed.All memory allocation anddeallocation is automatic.Primary data structures, lists andnumbers, are unlimited in size andmay grow without bound.Continuations provide a novel way tosuspend and “re-execute”computations.11CS 538 Spring 2006©2. ML (“Meta Language”)Strong, compile-time type checking.Types are determined by inferencerather than declaration.Naturally polymorphic (one functiondeclaration can be used with manydifferent types).Pattern-directed programming (youdefine patterns that are automaticallymatched during a call).Typed exceptions are provided.Abstract data types, withconstructors, are included.12CS 538 Spring 2006©3. Prolog (Programming in Logic)Programs are Facts and Rules.Programmers are concerned withdefinition, not execution.Execution order is automaticallydetermined.4. PizzaExtends a popular Object-orientedlanguage, Java, to include• Parametric polymorphism (similar toC++’s templates).• First-class functional objects.• Algebraic data types, includingpatterns.13CS 538 Spring 2006©5. C#Microsoft’s answer to Java. In mostways it is very similar to Java, withsome C++ concepts reintroduced andsome useful additions.• Events and delegates are included tohandle asynchronous actions (likekeyboard or mouse actions).• Properties allow user-defined readand write actions for fields.• Indexers allow objects other thanarrays to be indexed.• Collection classes may be directlyenumerated:foreach (int i in array) ...• Structs and classes co-exist and maybe inter-converted (boxed andunboxed).14CS 538 Spring 2006©• Enumerations, operator overloadingand rectangular arrays are provided.• Reference, out and variable-lengthparameter lists are allowed.15CS 538 Spring 2006©6. Java 1.5 (Tiger Java)Extends current definition of Java toinclude:• Parametric polymorphism (collectiontypes may be parameterized).• Enhanced loop iterators.• Automatic boxing and unboxing ofwrapper classes.• Typesafe enumerations.• Static imports (out.println ratherthanSystem.out.println).• Variable argument methods.• Formatted output using printf:out.printf("Ans = %3d",a+b);16CS 538 Spring 2006©7. PythonA simple, efficient scripting languagethat quickly builds new programs outof existing applications and libraries.It cleanly includes objects.It scales nicely into


View Full Document

UW-Madison COMPSCI 538 - CS 538 Lecture 1 Notes

Download CS 538 Lecture 1 Notes
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view CS 538 Lecture 1 Notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view CS 538 Lecture 1 Notes 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?