Top Banner
Chapter 1.4 Programming Languages and Programming
29

Chapter 1.4 Programming Languages and Programming.

Jan 17, 2016

Download

Documents

Brittney Weaver
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Chapter 1.4 Programming Languages and Programming.

Chapter 1.4

Programming Languages

and

Programming

Page 2: Chapter 1.4 Programming Languages and Programming.

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.

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.

Source Code (LLL)

ASSEMBLER

Object Code

HARDWARE

The ASSEMBLER

Page 5: Chapter 1.4 Programming Languages and Programming.

Assembling and Executing1. Loading the Assembler

Assembler

(in machine language)

ABL

Page 6: Chapter 1.4 Programming Languages and Programming.

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.

Assembling and Executing3. Loading the user’s program

ABL

User’s Program

(in machine language)

Page 8: Chapter 1.4 Programming Languages and Programming.

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.

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.

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.

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.

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.

HARDWARE

INTERPRETER

Source Code (HLL)

COMPILER

Object Code

Page 14: Chapter 1.4 Programming Languages and Programming.

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.

Compiling and Executing1. Loading the Compiler

Compiler

(in machine language)

ABL

Page 16: Chapter 1.4 Programming Languages and Programming.

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.

Compiling and Executing3. Loading the user’s program

ABL

User’s Program

(in machine language)

Page 18: Chapter 1.4 Programming Languages and Programming.

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.

Interpretation1. Loading the Interpreter

Interpreter

(in machine language)

ABL

Page 20: Chapter 1.4 Programming Languages and Programming.

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.

HARDWARE

INTERPRETER

Source Code (HLL)

COMPILER

Object Code

ASSEMBLER

Assembler Source

Page 22: Chapter 1.4 Programming Languages and Programming.

HARDWARE 1

INTERPRETER 1

Source Code (HLL)

COMPILER

CommonAssembler Source

HARDWARE 2

INTERPRETER 2

Page 23: Chapter 1.4 Programming Languages and Programming.

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.

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.

HARDWARE

INTERPRETER

Source Code (HLL)

COMPILER

Object Code

LINKER

Reloc.Code

Page 26: Chapter 1.4 Programming Languages and Programming.

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.

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.

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.

Spreadsheet example