Influences on Language Design

Description

How computer architecture and programming design methodologies affect the basic design of programming languages.
Amy Dang
Flashcards by Amy Dang, updated more than 1 year ago
Amy Dang
Created by Amy Dang about 1 year ago
0
0

Resource summary

Question Answer
von Neumann Architecture The CPU is separate from main memory. Instructions gets transmitted, or piped, from memory to CPU. Then, CPU executes instructions before getting moved back to memory. Requires less CPUs to be built. Almost all digital computers built since 1940s has been based on the von Neumann architecture. Languages created based on computer architecture = imperative languages.
von Neumann Computer Architecture
Central Features of Imperative Languages 1. Variables model memory cells 2. Assignment statements are based on the piping operation 3. Iteration is the most efficient way to implement repetition because instructions are stored in adjacent cells of memory (discourages the use of recursion)
Fetch-Execute Cycle Programs reside in memory but are executed in the CPU. Each instruction to be executed must be moved from memory to the processor. The address of the next instruction to be executed is maintained in a register called the program counter. Program execution terminates when a stop instruction is encountered (rare). Usually, control transfers from the OS to a user program for its execution and then back to the OS when the user program execution is complete.
Fetch-Execute Cycle (Simplified) 1. Select a program and find program in hard drive. 2. Computer searches for the program, then loads the program into main memory. 3. Main memory feeds instructions to CPU. 4. CPU feeds back output to main memory to load program.
Disadvantages to von Neumann Architecture Bottleneck: CPU is faster than RAM. CPU stalled cycle: when main memory is slow, and the CPU has to wait after processing instructions. Solution: Caches. Clusters of instructions are bundled together that gets downloaded from RAM to CPU and stored in CPU for processing.
1950s - 1960's Monster Machines Large computer machines were leased. Programs were simple applications. There was a need to make efficient programs to run quickly to compensate for expensive lease times.
Late 1960s People Over Machines Programmer efficiencies were more important than machine efficiency. Increased demand for readability and better control structures. Initiated top-down design and step-wise refinement.
1970s Shift from Procedure-Oriented to Data-Oriented Program Design Hardware costs decreased and programmer costs increased. Increased demand for programs that can perform larger and complex tasks. Data-oriented methods emphasized data design, focusing on the use of abstract data types to solve problems. Creation of data abstraction: SIMULA 67
1980s Object-Oriented Design Object-oriented methodology began with data abstraction, which encapsulates processing with data objects and controls access to data, and adds inheritance and dynamic method binding. Inheritance allows for the potential reuse of existing software.
Show full summary Hide full summary

Similar

computer architecture acronyms
Tolu Awosanya
ESL Approaches and Methodologies
M S
Future Methodologies
Hunter Lynch
ESL Methodologies
Robyn Nichols
Approaches & Methodologies
emilyeburleson
Giving instructions
Alejandro Cuquejo
Computer Architecture Test 3 Prep
Robert Parson
العروض التقديمية
nona.q8.89
Survey Design
cjjstone
ESOL Approaches to Learning: Strategies and Methodolgies
Tina Benson