chapter 1.4 programming languages and programming
TRANSCRIPT
![Page 1: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/1.jpg)
Chapter 1.4
Programming Languages
and
Programming
![Page 2: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/2.jpg)
Machine Language Assembler
P1: 10 0 1 COPY #0 NDP2: 10 0 2 COPY #0 SCP3: 40 11 0 3 EQ? KFL #0 P3P4: 24 2 10 2 MUL SC #10 SCP5: 21 2 12 2 ADD SC KDA SCP6: 10 0 11 COPY #0 KFLP7: 20 1 1 1 ADD ND #1 NDP8: 42 1 3 3 NE? ND #3 P3P9: 42 2 321 1 NE? SC #321 P1P10: 10 1 13 COPY #1 DDAP11: 47 1 JMP P1
Machine Language vs. Assembler
![Page 3: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/3.jpg)
ND: DAT 2 Number of digits,2 bytesSC: DAT 2 Secret code,2 bytesKFL: EQU 10 Keyboard FlagKDA: EQU 11 Keyboard DataDDA: EQU 13 Door DataBGN: COPY #0 ND Init. number of digits
COPY #0 SC Init. secret codeTFL: EQ? KFL #0 TFL Test for key stroke
MUL SC #10 SC Shift SC one digit leftADD SC KDA SC Add new digit to SCCOPY #0 KFL Reset keyflagADD ND #1 ND Increase entered digitsNE? ND #3 TFL More digits needed ?NE? SC #321 BGN Correct secret code ?COPY #1 DDA Open the doorJMP BGN Restart everythingEND
Assembler Example
![Page 4: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/4.jpg)
Source Code (LLL)
ASSEMBLER
Object Code
HARDWARE
The ASSEMBLER
![Page 5: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/5.jpg)
Assembling and Executing1. Loading the Assembler
Assembler
(in machine language)
ABL
![Page 6: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/6.jpg)
Assembling and Executing2. Assembling the program
AssemblerSo
urc
e C
od
e
Ob
ject
Co
de
![Page 7: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/7.jpg)
Assembling and Executing3. Loading the user’s program
ABL
User’s Program
(in machine language)
![Page 8: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/8.jpg)
Assembling and Executing4. Executing the user’s program
User’s ProgramUs
er’
s D
ata
Us
er’
s re
su
lts
![Page 9: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/9.jpg)
ND: DAT 2 Number of digits,2 bytesSC: DAT 2 Secret code,2 bytesKFL: EQU 10 Keyboard FlagKDA: EQU 11 Keyboard DataDDA: EQU 13 Door DataBGN: COPY #0 ND Init. number of digits
COPY #0 SC Init. secret codeTFL: EQ? KFL #0 TFL Test for key stroke
MUL SC #10 SC Shift SC one digit leftADD SC KDA SC Add new digit to SCCOPY #0 KFL Reset keyflagADD ND #1 ND Increase entered digitsNE? ND #3 TFL More digits needed ?NE? SC #321 BGN Correct secret code ?COPY #1 DDA Open the doorJMP BGN Restart everythingEND
Assembler Example
![Page 10: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/10.jpg)
VAR ND,SC : CARDINAL; KFL[10] : (idle,ready); KDA[11] : [0..9]; DDA[13] : (closed,open);BEGIN LOOP SC := 0; FOR ND := 1 TO 3 DO REPEAT UNTIL KFL = ready; SC := SC * 10 + KDA; KFL := idle; END (* FOR *); IF SC = 321 THEN DDA := open END (* IF *) END (* LOOP *)END
High-level Language Example
![Page 11: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/11.jpg)
High- vs. Low-Level Languages
Final := (Written + Oral) DIV 2
STOADDSHRSTO
Written AA Oral AA 1 A Final
![Page 12: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/12.jpg)
Programming Languages
• Low Level Languages (Assembler)– One statement corresponds to one instruction– Machine specific– Error prone, low programmers productivity
• High Level Languages– One statement corresponds to many instructions– Machine independent– User friendly, high programmers productivity.
![Page 13: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/13.jpg)
HARDWARE
INTERPRETER
Source Code (HLL)
COMPILER
Object Code
![Page 14: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/14.jpg)
Compilers vs. Interpreters
• Compilers– Translate the entire program at once– Program execution very fast– Poor run-time error messages
• Interpreters– Translate and execute statement after statement– Very slow execution– Good run-time error messages
![Page 15: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/15.jpg)
Compiling and Executing1. Loading the Compiler
Compiler
(in machine language)
ABL
![Page 16: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/16.jpg)
Compiling and Executing2. Compiling the program
CompilerSo
urc
e C
od
e
Ob
ject
Co
de
![Page 17: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/17.jpg)
Compiling and Executing3. Loading the user’s program
ABL
User’s Program
(in machine language)
![Page 18: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/18.jpg)
Compiling and Executing4. Executing the user’s program
User’s ProgramUs
er’
s D
ata
Us
er’
s re
su
lts
![Page 19: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/19.jpg)
Interpretation1. Loading the Interpreter
Interpreter
(in machine language)
ABL
![Page 20: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/20.jpg)
Interpretation2. Interpreting the user’s program
Interpreter
Us
er’
s re
su
lts
So
urc
e C
od
e+
Us
er’
s D
ata
![Page 21: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/21.jpg)
HARDWARE
INTERPRETER
Source Code (HLL)
COMPILER
Object Code
ASSEMBLER
Assembler Source
![Page 22: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/22.jpg)
HARDWARE 1
INTERPRETER 1
Source Code (HLL)
COMPILER
CommonAssembler Source
HARDWARE 2
INTERPRETER 2
![Page 23: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/23.jpg)
Source B Source C Source DSource A
Reloc. DReloc. A Reloc. B Reloc. C
Compiler X Compiler Y Assembler
LINKER
Object Code A+B+C+D
Role of a Linker
![Page 24: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/24.jpg)
Relocatable Code• Relocatable object code = three tables:
– CODE• Program to be loaded from address 0
• List of all location dependant addresses
– EXTERNALS• Symbolic names to be imported
• Addresses where these externals are referenced
– ENTRY POINTS• Symbolic names that can be referenced elsewhere
• Address corresponding to the symbolic name
![Page 25: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/25.jpg)
HARDWARE
INTERPRETER
Source Code (HLL)
COMPILER
Object Code
LINKER
Reloc.Code
![Page 26: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/26.jpg)
Dynamic Linking
• Fact : – Many procedures are not activated at each
program execution
• Solution :– Link at run-time !• Initial procedure calls replaced by call to linker• Procedure name passed as parameter to linker
– Example : .dll files under MS/Windows
![Page 27: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/27.jpg)
Imperative vs. Non-imperative
• Imperative– Program states how things should be done– Traditional programming style– Efficient execution, often compiled.
• Non imperative (Declarative or Functional)– Program states what should be done– Innovative programming style for specific fields– Often interpreted.
![Page 28: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/28.jpg)
Imperative vs. Non-imperative
READ (Oral);
READ (Written);
Final := (Oral+Written)/2;
WRITE (Final)
• Declarations:Oral can be read
Written can be read
Final = (Oral+Written)/2
• Commands:Write(Final)
![Page 29: Chapter 1.4 Programming Languages and Programming](https://reader035.vdocuments.net/reader035/viewer/2022062301/56649f435503460f94c6334c/html5/thumbnails/29.jpg)
Spreadsheet example