Just Enough Type Theory or, Featherweight Java A Simple Formal Model of Objects - PowerPoint PPT Presentation

About This Presentation
Title:

Just Enough Type Theory or, Featherweight Java A Simple Formal Model of Objects

Description:

Just Enough Type Theory. or, Featherweight Java. A Simple ... snail.fly() Type soundness. A well-typed program will not halt with an undefined operation error ... – PowerPoint PPT presentation

Number of Views:46
Avg rating:3.0/5.0
Slides: 13
Provided by: jonathan55
Learn more at: http://www.cs.cmu.edu
Category:

less

Transcript and Presenter's Notes

Title: Just Enough Type Theory or, Featherweight Java A Simple Formal Model of Objects


1
Just Enough Type Theoryor,Featherweight
JavaA Simple Formal Model of Objects
  • Jonathan Aldrich
  • 15-819

2
Why Formal Models?
  • Make precise what a language means
  • What can you say in the language?
  • How does a program execute?
  • Allow us to prove formal properties
  • Typically, lack of certain run-time errors
  • This course
  • Type theory not required for much of the reading
  • However, some papers use formal notation
  • A brief introduction will help us get more out of
    it

3
Example Featherweight Java
  • A minimal core calculus for Java
  • Classes, methods, fields, inheritance
  • Any FJ program is a Java program
  • Purpose of a core language
  • Leaves out unnecessary details
  • Focuses attention on issues of interest
  • Makes proving formal properties easier
  • Citation
  • Atsushi Igarashi, Benjamin Pierce, and Philip
    Wadler. Featherweight Java A Minimal Core
    Calculus for Java and GJ. OOPSLA 99.

4
FJ Syntax
  • Standard BNF definition
  • Overbar represents a sequence

5
Subtyping Judgments
Base case each class subtypes itself
Transitivity rule Both exprs on top must hold
If we know this
Then we can conclude this
6
Dynamic Semantics
  • Computation expressed as rewriting rules
  • d/x e substitute d for x in e

7
Evaluation Examples
8
Type System
  • Conceptually
  • Annotates an object or expression
  • Describes operations that are applicable
  • Prevents run-time errors from undefined
    operations
  • X hello 2
  • snail.fly()
  • Type soundness
  • A well-typed program will not halt with an
    undefined operation error
  • Javas type system does a dynamic check at casts,
    and so programs can halt with a cast error.
  • FJs type system, however prevents all other run
    time errors.
  • Real languages have additional error cases
    however, the type soundness guarantee is still
    useful

9
FJ Types
  • ? maps var -gt class
  • Read ? e ? C as, in the context of type
    environment ?, expression e has type C

10
Class/Method Typing
11
Other definitions
12
Type Soundness
  • A well-typed program remains well-typed after a
    reduction step
  • A well-typed program can take a step
  • Well-typed FJ programs eventually reduce to
    either a value or an expression with an embedded
    cast error
  • Proofs are by induction, beyond the scope of this
    course
Write a Comment
User Comments (0)
About PowerShow.com