SML - PowerPoint PPT Presentation

About This Presentation
Title:

SML

Description:

Answers 'what is the meaning of a given program?' SML has a formal semantics. What about C? ... to take a look at the sample solution. Assignment 3. to be out ... – PowerPoint PPT presentation

Number of Views:80
Avg rating:3.0/5.0
Slides: 26
Provided by: sungwo8
Category:
Tags: sml | program | sample

less

Transcript and Presenter's Notes

Title: SML


1
SML
0, 1, 2, ..., , -, ...
true, false, if e then e else e
fun f x e
variables
exceptions
e1 e2
patterns
functors
fn x gt e
structures
datatypes
2
What lies in the core of SML?
0, 1, 2, ..., , -, ...
true, false, if e then e else e
fun f x e
variables
exceptions
e1 e2
patterns
functors
fn x gt e
structures
datatypes
3
Candidates?
  • booleans and if/then/else
  • integers
  • lists
  • variables
  • functions and function applications
  • datatypes
  • patterns
  • structures
  • functors
  • ...

4
Core of SML
5
(No Transcript)
6
?-calculus is Turing-complete
?-calculus
Turing machine

7
CSE-321 Programming Languages?-Calculus
???
  • POSTECH
  • March 21, 2007

8
Outline
  • Abstract syntax of the ?-calculus
  • Operational semantics of the l-calculus
  • Substitutions
  • Programming in the ?-calculus

9
Syntax for a Programming Language
  • Concrete syntax
  • program string of characters
  • specifies rules for parsing.
  • operator precedence
  • associativity
  • keywords, ...
  • 1 2 3
  • 1 (2 3)
  • 1 (2 (3))
  • Abstract syntax
  • abstracts away from details of parsing.
  • focuses on the high-level structure of programs.
  • suitable for studying the semantics

10
Abstract Syntax of the ?-Calculus
  • x
  • variable
  • z, s, t, f, arg, accum, ...
  • ?x. e
  • ?-abstraction
  • x formal argument, e body
  • ¼ fn x gt e
  • e1 e2
  • application
  • left-associative (as in SML)
  • e1 e2 e3 (e1 e2 ) e3
  • e1 e2 e3 ? e1 (e2 e3 )

11
Examples
12
Outline
  • Abstract syntax of the ?-calculus V
  • Operational semantics of the l-calculus
  • Substitutions
  • Programming in the ?-calculus

13
Semantics of Languages
  • Answers "what is the meaning of a given program?"
  • SML has a formal semantics.
  • What about C?
  • Three styles
  • denotational semantics
  • axiomatic semantics
  • operational semantics
  • The 1990s saw the renaissance of operational
    semantics.

14
Operational Semantics
  • Specifies how to transform a program into a value
    via a sequence of operations

Program
let fun fac 1 1 fac n n fac (n -
1) in fac 4 end
24
15
Operational Semantics of ?-Calculus
  • Specifies how to transform an expression into a
    value via a sequence of reductions

Expr
16
Values and Reductions
17
Reductions
18
_____ Redex
19
_____ Redex
20
?-Reduction Not Unique
So we need a reduction strategy.
21
?-Reduction Not Unique
So we need a reduction strategy.
22
Call-by-name Call-by-value

23
Call-by-name Call-by-value
24
(No Transcript)
25
(No Transcript)
26
Call-by-name Call-by-value
  • Used in Haskell
  • Lazy or non-strict functional languages
  • The implementation uses call-by-need.
  • Superb!
  • Used in SML
  • Eager or strict functional languages
  • Superb!

(fn x gt 0) ltsome horrible computationgt
(fn x gt 0) ltnon-terminating computationgt
27
Assignments
  • Assignment 2
  • average 86.68
  • Be sure to take a look at the sample solution.
  • Assignment 3
  • to be out by midnight tonight.
  • ???
  • due on April 2
  • Start early! (? Start coding early!)

28
Quiz 1
  • Next Monday
  • Read Chapter 2 of Course Notes.
  • 'fill in the blank' problems (i.e., easy)
  • 15 minutes
  • Please show up on time.Otherwise you might miss
    the quiz!

29
Anonymous Feedback
  • To be set up sometime today (hopefully)
  • http//pl.postech.ac.kr/gla/feedback/
  • I will appreciate your feedback on this course.
  • lectures
  • assignments
  • schedule
  • topics
  • It is you who will improve this course!
Write a Comment
User Comments (0)
About PowerShow.com