1/25
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
|---|
No study sessions yet.
what were the media used for instructions and data in the earliest commercial computers?
punched cards for data and patch boards for instructions
what was the major breakthrough introduced by stored-program computers like ENIAC (1946)?
programs could be stored in memory, manipulated as data, and computers could have more flexible control
lower-level languages
languages defined by hardware operations, such as machine code and assembler.
assembler language
a 1-to-1 symbolic encoding of machine instructions, making programs easier to develop than raw machine code
what were early controversies around higher-level languages?
critics feared slow code; proponents argued HLLs reduce coding and debugging time significantly
FORTRAN (1955-57) was designed for what type of applications?
numerical applications
name the major benefits of FORTRAN
improved readability, faster development, easier education, and portability
LISP (1959) introduced which programming paradigm?
functional programming; it was designed for symbolic processing and AI applications
ALGOL (1958) goals included what?
close to mathematical notation, algorithm description, machine code compilation, and portability
COBOL (1960) aimed to be readable by whom?
managers; it allowed programming in a natural English style
what was the goal of the C programming language (1969-73)?
achieve low-level efficiency for system programming without using assembler
why did the DoD estimate 450 languages in use by the 1970s?
the diversity of programming needs and specialization justified the development of Ada as a standard PL.
which languages popularized object-oriented programming?
smalltalk (1970s), C++ (1980s), Java (1990s)
why are there so many languages today (second explosion)?
specialization, new concepts, hardware advances, compiler advances, and inertia of old languages
what is a programming paradigm?
a model representing fundamentally different views of programming, including computation models, organization, and parallelism
name the three major computation models
imperative, functional, logic
imperative programming
programming using assignment and control flow; variables are mutable and execution order is explicit
functional programming
treats the entire program as a function; variables are immutable; avoids explicit control flow
logic programming
programs consist of facts and inference rules; variables are immutable; no control flow
how are large programs organized?
subroutines, modules, and object-based structures
name languages supporting object-based organization
simula, smalltalk, C++, CLOS, modula-3, java
what is the difference between sequential and concurrent parallelism?
sequential: no native parallelism, relies on libraries.
concurrent: language constructs support parallelism directly
what defines 1st generation programming languages (1954-58)?
Fortran I, ALGOL 58; focused on mathematical expressions
what defines 2nd generation programming languages (1959-61)?
Fortran II, ALGOL 60, COBOL, LISP; introduced subroutines, block structure, data types, file handling, pointers/lists
what defines 3rd generation programming languages (1962-90)?
early: Simula 67, ALGOL 68, Pascal, C
late: Modula 1, Ada; modules, user-defined types, strong typing, concurrency.
what defines 4th generation languages?
tailored to specific application domains or CASE environments; often less widespread.