Download presentation
Presentation is loading. Please wait.
Published byPeter Norton Modified over 9 years ago
1
Chapter 2.3 Modula 2 An Introduction
2
Summary First example Terminal symbols Comments Data –Constants –Variables Actions –Assignment statement –Control statements
3
A first example MODULE FirstExample; (* This program computes the area of a circle *) FROM InOut IMPORT WriteString, WriteLn; FROM RealInOut IMPORT WriteReal, ReadReal; CONST pi = 3.1416; VAR radius, area : REAL; BEGIN WriteLn; WriteLn; WriteString("Hello, I compute the area of a circle for you"); WriteLn; WriteString("Give me the radius in meters "); ReadReal(radius); area := pi * radius * radius; WriteString("The area of this circle is "); WriteReal(area,0); WriteString(" square meters "); WriteLn; END FirstExample.
4
Terminal Symbols Upper- and Lower-case letters a b c d e... A B C D E... Digits 0 1 2 3 4 5 6 7 8 9 Special signs ;,. | + - * / = # > < ( ) [ ] { } Composed signs (* *) := >= <= Reserved Words MODULE BEGIN END IMPORT FROM
5
Source BSource CSource DSource A Reloc. DReloc. AReloc. BReloc. C Compiler XCompiler YAssembler LINKER Object Code A+B+C+D Role of a Linker FROM InOut IMPORT WriteString, WriteLn; FROM RealInOut IMPORT WriteReal, ReadReal;
6
Comments (* This program computes the area of a circle *) (* Text not containing (* nor *) *) Comment
7
Summary First example Terminal symbols Comments Data –Constants –Variables Actions –Assignment statement –Control statements
8
Constants Data whose value can not change during program execution Literal Constants Only a value: Named Constants A name and a value: The value can be a constant expression 3.1416 "The area of this circle is " pi = 3.1416 twopi = pi * 2.0
9
Syntax of Constants = Constant ExpressionIdentifier Constant Declaration Whole Number Literal Literal Real Literal String Literal Pointer Literal
10
Whole Number Literal + - Decimal Literal Octal Literal Hexadecimal Literal
11
Decimal Literal DecimalDigit 01234 56789
12
Octal Literal OctalDigit 01234 567 B 10B 8B
13
Hexadecimal Literal HexadecimalDigit H ABCDE F DecimalDigit HexadecimalDigit 10FFFH 0FFFFFH 1000F FFFFFH
14
Real Literal 3.1416 3.1416E0 0.31416E1 31416E-4 3,1416
15
String Literal "The area of this circle is " 'The area of this circle is ' "This string contains a ' "'but no " ' " Text not containing " " ' Text not containing ' '
16
Why named constants ? Area := 6 * Length*Length... Tax := (Price * 6) DIV 100 CONST VAT = 6;... Area := 6 * Length*Length... Tax := (Price * VAT) DIV 100 Area := 21 * Length*Length... Tax := (Price * 21) DIV 100 CONST VAT = 21;... Area := 6 * Length*Length... Tax := (Price * VAT) DIV 100
17
Constants and Variables Constants –(Name) –Value The value of a constant belongs to a type. Variables –Name –Type Type = set of all values the variable can have The type determines the internal representation of data as well as the operations that can be performed on the data
18
Types in Modula 2 Simple Types: values can’t be decomposed –Ordinal Types: bijection with natural numbers –Reals: approx. representation for real values –Pointers: addresses in data memory Structured Types: Values have # components –Arrays: all components have same type –Records: components can have # types –Sets: small sets of ordinal values –Procedures: entire subprograms
19
Summary First example Terminal symbols Comments Data –Constants –Variables Actions –Assignment statement –Control statements
20
Assignments Assignment operator := –Fundamentally different from the = sign –The = sign denotes a timeless relation –The := operator describes a particular action: The right side expression is evaluated Its value is stored in the left side variable –Illustrative example : a := a + 1 area := pi * radius * radius;
21
Control Statements Influence the order of execution of instructions Selection –IF THEN ELSE –CASE Iteration –WHILE –REPEAT –FOR –LOOP Procedure Call WriteString("Hello, I comput WriteLn; WriteString("Give me the rad ReadReal(radius); area := pi * radius * radius WriteString("The area of thi WriteReal(area,0); WriteString(" square meters WriteLn;
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.