Programming Languages: Design, Specification, and Implementation - PowerPoint PPT Presentation

1 / 7
About This Presentation
Title:

Programming Languages: Design, Specification, and Implementation

Description:

http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf ... Safe Reader-Writer Parallelism (Optimistic Readers): http://www.research.ibm.com ... – PowerPoint PPT presentation

Number of Views:57
Avg rating:3.0/5.0
Slides: 8
Provided by: robs8
Learn more at: https://cs.nyu.edu
Category:

less

Transcript and Presenter's Notes

Title: Programming Languages: Design, Specification, and Implementation


1
Programming LanguagesDesign, Specification, and
Implementation
  • G22.2210-001
  • Rob Strom
  • November 9, 2006

2
Other readings on ML
  • http//www.dcs.ed.ac.uk/home/stg/NOTES/notes.html

3
Readings (week 1)
  • Theoretical and Historical Papers on Concurrency
  • The Readers/Writers Problem
  • http//www.md.chalmers.se/ptrianta/SynCCo/LIT/la
    mp77.pdf.gz
  • Shared Registers (Part II)
  • http//users.ece.gatech.edu/dblough/6102/lamport_
    consistency.pdf
  • Wait-free synchronization
  • http//www.cs.brown.edu/mph/Herlihy91/p124-herlih
    y.pdf
  • Partially-ordered time.
  • http//research.microsoft.com/users/lamport/pubs/t
    ime-clocks.pdf
  • Concurrency models in object-oriented languages
  • Ada Reference Manual Section 9
  • Java Reference Manual Chapter 17
  • Thinking in C, chapter 11
  • http//web.mit.edu/merolish/ticpp/TicV2.html_Toc5
    3985862

4
Readings (week 2)
  • Problems with the Memory Model
  • Java Memory model is Broken
  • http//www.cs.umd.edu/pugh/java/broken.pdf
  • Thread-Safe Programming
  • Compiler-Enforced Thread-Safety (Guava)
    http//researchweb.watson.ibm.com/people/d/dfb/pap
    ers/Bacon00Guava.ps
  • Safe Reader-Writer Parallelism (Optimistic
    Readers) http//www.research.ibm.com/distributedm
    essaging/paper13.html

5
Programming Project on Concurrency due Nov. 30
  • Extend the room world of the previous assignment
    so that multiple people can enter rooms and do
    things
  • Each thing someone does is an atomic unit of
    work, e.g.
  • Get things from factories and put them in the
    room
  • Pick up a bunch of objects and put them in a
    container
  • Pick up 2 containers and a funnel and transfer
    liquid from one container to the other
  • Dont deadlock
  • Anticipate contention e.g. youve picked up
    object A and try to pick up object B, but
    discover its gone because someone else picked up
    object B. You may need to give up your scripted
    action.
  • The implementation should have the same realism
    properties as the non-concurrent implementation
    did e.g. things shouldnt spontaneously
    disappear or appear in multiple places.
  • You may use any one of C, Java, or Ada
    (probably the same language you used for previous
    assignment, but this is not required)

6
Notes on Grading of Projects
  • The bulk of the points should go for
    understanding the assignment and correctly using
    the features of the languages being tested (e.g.
    in the polymorphism assignment, triggering
    run-time dispatching, and sharing a common
    interface).
  • The next group of points is for clear
    documentation of the components, and what they
    do.
  • The last group of points should be for
    correctness, freedom from bugs, conformity to
    test cases.

7
HomeworkML Type Inference Problem
  • Type inference
  • fun zip f nil nil nil
  • zip f (ht) (is) f(h,i)zip f t s
  • What does it do?
  • What is its most general type?
  • Consider these two expressions
  • (1) fun f g g 7 g false
  • (2) let val g fn (x) gt 20 in g 7 g false
  • Why is (1) incorrectly typed and (2) correctly
    typed?
  • What is the type of g in (2)?
Write a Comment
User Comments (0)
About PowerShow.com