Chapter 1 - Introduction
Chapter 1 - Introduction
Overview
Simplified Instructional Computer
Traditional Machine Structure
Systems Programming Languages
Systems Programming (Compiled by: Kidane W.) 11/19/2018 1
History of Computer Programming
• One of the difficulties of discussing the historical origins of a subject is to decide
where to begin.
• It is probably fair to say that the first program-controlled (mechanical) computer
ever build was the Z1 (1938).
• This was followed in 1939 by the Z2 as the first operational program controlled
computer with fixed-point arithmetic.
• Note: the numbering scheme is chosen for compatibility with XE version of SIC
Systems Programming (Compiled by: Kidane W.) 11/19/2018 20
SIC Data Formats
• Integers: stored as 24-bit binary numbers
• 2’s complement representation for negative values
• No floating point hardware in standard SIC
• Characters: 8-bit ASCII
1 1 1 1 1 1
opcode n i x b p e displacement
6 bit 12 bit
opcode n i x b p e address
6 bit 20 bit
4 0 1 0 3 6
• Instruction
• standard, fixed instruction format
• single-cycle execution of most instructions
• memory access is available only for load and store instruction
• other instructions are register-to-register operations
• a small number of machine instructions, and instruction format
Systems Programming (Compiled by: Kidane W.) 11/19/2018 52
RISC Machines[2]
• Large number of general-purpose registers
• Small number of addressing modes
• Three RISC machines
• SPARC family
• PowerPC family
• Cray T3E
Systems Programming (Compiled by: Kidane W.) 11/19/2018 53
Systems Programming Languages
• In modern programming languages, there exists a distinct lack of languages targeted at
systems programming.
• Most modern languages are designed for application development which is most certainly
valid in the modern world. However, systems programming has been left behind in language
development.
• As such, systems programs do not benefit from the modern developments in language
design.
• Examples of System Programming Languages
• C/C++, D, Go, Rust
Systems Programming (Compiled by: Kidane W.) 11/19/2018 54
Systems Programming Languages