DOC PREVIEW
UW-Madison COMPSCI 538 - CS 538 Lecture 1 Notes

This preview shows page 1-2-3-4-5-6 out of 17 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 17 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 17 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 17 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 17 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 17 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 17 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 17 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

1CS 538 Spring 2008©CS 538Introduction to the Theory andDesign of ProgrammingLanguagesCharles N. FischerSpring 2008 http://www.cs.wisc.edu/~fischer/cs538.html2CS 538 Spring 2008©Class MeetsMondays, Wednesdays &Fridays,9:55 — 10:451325 Computer SciencesInstructorCharles N. Fischer6367 Computer SciencesTelephone: 608.262.6635E-mail: [email protected] Hours:10:30 - Noon, Tuesdays &Thursdays, or byappointment3CS 538 Spring 2008©Teaching AssistantJongwon Yoon3361 Computer SciencesTelephone: 608.354.3613E-mail: [email protected] Hours:2:00 - 3:00, Mondays,Wednesdays and Fridays,or by appointment4CS 538 Spring 2008©Key Dates• Feb 25: Homework #1 (tentative)• March 24: Programming Assignment #1 - Scheme (tentative)• April 2: Midterm Exam (tentative)• April 16: Programming Assignment #2 - Standard ML (tentative)• May 2: Programming Assignment #3 - Prolog (tentative)• May 9: Programming Assignment #4 -Java, C#, Pizza and Python• May 15: Final Exam 2:45pm-4:45pm5CS 538 Spring 2008©Class Text• Required text:“Modern ProgrammingLanguages,” Adam Webber,Franklin, Beedle & Associates,2003.• Handouts and Web-based reading willalso be used.Reading Assignment• Webber: Chapters 1, 10, 18 (as background)6CS 538 Spring 2008©Class Notes• Each lecture will be made availableprior to that lecture on the class Webpage (under the “Lecture Nodes” link).Instructional ComputersDepartmental Linux Machines(king01- king12, emperor01-emperor40) have beenassigned to CS 538. Allnecessary compiler,interpreters and tools will beloaded onto these machines.7CS 538 Spring 2008©You may also use your own PCor laptop. It will be yourresponsibility to load neededsoftware (instructions on whereto find needed software areincluded on the class webpage).The Systems Lab teaches brieftutorials on Linux if you areunfamiliar with that OS.8CS 538 Spring 2008©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 bereported to the Dean’s office.• Penalties may be severe.9CS 538 Spring 2008©Program & Homework LatePolicy• An assignment may be handed in upto 7 days late, but no later.• Each day late will be debited 4%, up toa maximum of 28%.• All students are given 10 “free” latedays. That is, the first 40% in latedebits will be automatically forgiven.• Your 10 free late days my be used atany time, and in any combination.10CS 538 Spring 2008©Approximate Grade WeightsHomework 1 10%Program 1 - Scheme 16%Program 2 - ML 16%Program 3 - Prolog 12%Program 4 - Java, C#, Pizza and Python (optional extra credit) 10%Midterm Exam 23%Final Exam (non-cumulative) 23%11CS 538 Spring 2008©Programming Languages to beConsidered in Detail1. SchemeA modern variant of Lisp.A Functional Language:Functions are “first class” datavalues.Dynamically Typed:A variable’s type may changeduring execution; no typedeclarations are needed.All memory allocation anddeallocation is automatic.Primary data structures, listsand numbers, are unlimited insize and may grow withoutbound.12CS 538 Spring 2008©Continuations provide a novelway to suspend and “re-execute” computations.2. ML (“Meta Language”)Strong, compile-time typechecking.Types are determined byinference rather thandeclaration.Naturally polymorphic (onefunction declaration can beused with many differenttypes).Pattern-directed programming(you define patterns that areautomatically matched during acall).13CS 538 Spring 2008©Typed exceptions are provided.Abstract data types, withconstructors, are included.3. Prolog (Programming in Logic)Programs are Facts and Rules.Programmers are concernedwith definition, not execution.Execution order isautomatically determined.14CS 538 Spring 2008©4. PizzaExtends a popular Object-oriented language, Java, toinclude• Parametric polymorphism (similarto C++’s templates).• First-class functional objects.• Algebraic data types, includingpatterns.5. C#Microsoft’s answer to Java. Inmost ways it is very similar toJava, with some C++ conceptsreintroduced and some usefuladditions.15CS 538 Spring 2008©• Events and delegates are includedto handle asynchronous actions(like keyboard 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 andmay be inter-converted (boxed andunboxed).• Enumerations, operatoroverloading and rectangular arraysare provided.• Reference, out and variable-lengthparameter lists are allowed.16CS 538 Spring 2008©6. Java 1.5 (Tiger Java, Java 5.0)Extends current definition ofJava to include:• Parametric polymorphism(collection types may beparameterized).• Enhanced loop iterators.• Automatic boxing and unboxing ofwrapper classes.• Typesafe enumerations.• Static imports (out.println ratherthan System.out.println).• Variable argument methods.• Formatted output using printf:out.printf("Ans = %3d",a+b);17CS 538 Spring 2008©7. PythonA simple, efficient scriptinglanguage that quickly buildsnew programs out of existingapplications 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?