Introducing ASML - PowerPoint PPT Presentation

About This Presentation
Title:

Introducing ASML

Description:

Classes are templates for user-defined types that can contain both fields and ... the only way to share memory, and they are the only form of aliasing available ... – PowerPoint PPT presentation

Number of Views:436
Avg rating:3.0/5.0
Slides: 20
Provided by: IgorPo
Category:

less

Transcript and Presenter's Notes

Title: Introducing ASML


1
Introducing ASML
  • Classes,
  • Structured Values,
  • Sets, Sequences
  • Lecture 11
  • Software Engineering COMP201

2
Assignment 1
  • The deadline for the Assignment 1 is
  • Wednesday 9th of November.
  • 12.00

3
I. Classes
  • Classes in AsmL have many similarities to those
    in other languages.
  • Classes are templates for user-defined types that
    can contain both fields and methods.
  • A value whose type is a class is an instance of
    the class, or, alternatively, an object.
  • Methods may also specify a return value that is
    available after the operation has been performed.

4
Fields defined in class
  • Here is a simple class declaration

class Person var name as String var age
as Integer
  • Class Person has two variables name and age
  • Variables contained within a class definition are
    called instance variables
  • If there are two instances of Person, there will
    be two variables called name and two variables
    called age
  • In other words, name and age occur once per
    instance of the class

5
New instances of a class
  • To create an instance of a class
  • put the keyword in front of the class name
  • supply values for any fields whose values were
    not specified in the class declaration

class Person var name as String var age
as Integer p1 new Person(William, 40) p2
new Person(Alice, 20)
is used only when creating new memory as when we
are creating instances of classes
6
Updating to instance variables
Example of updating instance variables
class Person var name as String var age
as Integer var p1 new Person(William, 40) var
p2 new Person(Alice, 20) Main() step
p1.name Bill step WriteLine(Name of
p1 is p1.name) step WriteLine(Name
of p2 is p2.name)
The result is Name of p1 is Bill Name of p2
is Alice
7
Instances as references
  • Instances of classes provide a form of
    reference-indirection in AsmL
  • This property becomes important in methods whose
    arguments are instances of a class

class Person var name as String var age
as Integer RenamePerson(p as Person, newName as
String) p.name newName Main() var p1
new Person(William, 40) step
RenamePerson(p1,Bill) step
WriteLine(Name of p1 is p1.name)
8
Classes as references
  • In AsmL
  • all method arguments and return values are by
    value with the exception of instances of a class
  • Classes are the only way to share memory, and
    they are the only form of aliasing available
  • There are no pointers in AsmL

class Person var age as Integer var
name as String Main() var Bob new Person(30,
Jones) var Alice new Person(20, Smith)
var BobsFriend Alice step BobsFriend.age
21 step WriteLine(Alices age is
Alice.age)
9
Derived classes
  • AsmL supports inheritance, which means that you
    can define one class in terms of another
  • A class that is defined in terms of another class
    is called the derived class
  • The class that it is derived from is the base
    class
  • AsmL supports single inheritance, which means a
    derived class can only have one base class

BasicBox
FragileBox
10
Derived classes(example)
class BasicBox var length as Double var
width as Double var height as Double
Volume() as Double return(lengthwidthheigh
t) class FragileBox extends BasicBox Volume()
as Double return (0.85 lengthwidthheight)
Main() step var BasicBox1 new
BasicBox(1.0,1.0,.05) var FragileBox1 new
FragileBox(1.0,1.0,.05) step WriteLine(The
volume of the basic box is BasicBox1.Volume())
step WriteLine (The volume of the fragile
box is FragileBox1.Volume())
11
II. Structured values
  • A variable either global or instance-based is
    associated with a value at each step of the run.
  • The values of some variables have structure
    while some (like Boolean values) are simple.

structure Point x as Integer y as
Integer var myPosition as Point
Point(0,0) Main() step step
myPosition Point (10,12) step
myPostion.x 13
12
Dont confuse structures with classes
  • Classes contain instance variables and are the
    only way in AsmL to share memory
  • Structures contain fields and do not share memory

The result is Point1 (0,0) Point2
(0,0) Point1 (0,0) Point2 (10,0)
structure Point x as Integer y as
Integer var point1 as Point Point(0,0) var
point2 as Point point1 Main() step
WriteLine(Point1 point1) step
WriteLine(Point2 point2)
point2.x 10 step WriteLine (Point1
point1) step WriteLine (Point2 point2)
13
Structured cases
  • Structures may incorporate case statements as a
    way of organizing different variants forms

structure InputEvent case KeyInput
key as Char case SwitcherInput
toggle as Boolean case CoinInput
coin as Integer case CoinReturn
// no data needed
  • An input event can be
  • a key press,
  • a toggle switch,
  • a coin, or
  • a coin return button

14
Matching against structure cases
structure InputEvent case KeyInput key
as Char case SwitcherInput toggle as
Boolean case CoinInput coin as
Integer case CoinReturn // no data
needed HandleInput ( e as InputEvent ) match
e KeyInput(k) WriteLine(Key was pressed
k) SwitchInput(t) WriteLine(Switch
flipped t) CoinInput(c) WriteLine (Coin
inserted c) CoinReturn(c) WriteLine
(Coin return passed) Main() step
1HandleInput(KeyInput(a)) step
2HandleInput(CoinReturn()) step 3
HandleInput(CoinInput (25))
15
III. Sets
  • A set is an unordered collection of distinct
    values that are of the same type (for example,
    all integers or all characters)
  • These values are called the elements or members
    of the set
  • To show all the elements of a set, frame the
    elements between two curly braces and separate
    one element from the other by commas
  • A a,e,i, o,u //set of characters
  • B 2,3,0, 22,4 //set of integers
  • C //empty set

16
Sets with enumerated elements Sets given by value
range
  • To specify a set you can either
  • list all the elements in the set or
  • you can state all the properties that
    characterize the elements of the set

X1,2,3,4 Main() step WriteLine(X)
These methods are practical for small sets
X1..4 Main() step WriteLine(X)
17
Sets described algorithmically
  • In many cases, listing all the elements of a set
    isnt practical

Problem Suppose we have a set that includes the
integers from 1 to 20 and we want to find those
numbers that, when doubled, still belong to the
set. Solution
A 1..20 C i i in A where 2i in
A Main() step WriteLine(C)
18
Binding multiple names(example)
  • This example finds pairs of numbers where
  • the first number is a member of A and less than
    4,
  • while the second number is also in A and is less
    than the first number

i lt 4
i lt j
A 1..5 C (i,j) i in A where i lt 4 , j
in A where j lt i Main() step
WriteLine(C)
The result is C(2,1) (3,1) (3,2)
19
Set operations
  • Union
  • Intersect
  • Size

A 1,2,3,4,5 B 4,5,6 Main() step
WriteLine(B union A) step WriteLine(B
intersect A) step WriteLine(size(A))
The result is 1, 2, 3, 4, 5, 6 4, 5 5
For more complete documentation, see the AsmL
documentation http//research.microsoft.com/fse/a
sml/doc/StartHere.html
Write a Comment
User Comments (0)
About PowerShow.com