CS 4337

5.0(1)
studied byStudied by 299 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/234

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

235 Terms

1
New cards

Describe Prolog (5)

based on formal logic

non-procedural

inefficient

few application areas

intelligent database system that uses an inferencing process

2
New cards

What were the contributions of Ada (4)

packages - support for data abstraction

exception handling

generic program units

concurrency - through the tasking model

3
New cards

Describe Java (5)

significantly simplified features found in C++

has references but no pointers

automatic memory management through garbage collection

includes support for applets and a form of concurrency

platform independence

4
New cards

Describe Ruby (4)

began as a replacement for Perl and Python

a pure object-oriented scripting language

most operators are implemented as methods which can be redefined by user code

purely interpreted

5
New cards

What is a context-free grammar

language generators, meant to describe the syntax of natural languages

6
New cards

What feature does the programming language Whitespace have

interpreter ignores any non-whitespace character

7
New cards

What are the 6 reasons for studying the concepts of programming languages

increased ability to express ideas

improved background for choosing appropriate languages

increased ability to learn new languages

better understanding of the significance of implementation

better use of languages that are already known

advancement of computing

8
New cards

What are the 8 programming domains

scientific applications

business applications

artificial intelligence

systems programming

web software

embedded systems

3-d graphics and animation

gaming

9
New cards

Describe the scientific applications domain

large numbers of floating point computations and use of arrays

ex of language is fortran

10
New cards

Describe the business applications domain

produce reports using decimal numbers and characters

ex of language is cobol

11
New cards

Describe the AI domain

symbols rather than numbers manipulated, use of linked lists

ex of languages LISP, PROLOG

12
New cards

Describe the systems programming domain

requires efficiency because of continuous use

ex of language X

13
New cards

Describe the web software domain

diverse collection of languages such as markup (HTML), scripting (PHP), general purpose (Java)

14
New cards

Describe the embedded systems domain

software embedded on a closed system for a single purpose examples include automobiles, fitbit, and refrigerators

ex of languages Java, Python, C, mIPS, ARM, X86

15
New cards

Describe the 3-D graphics and animation domain

render very hi-res animation for cinema and television

ex languages Java, C

16
New cards

describe the gaming domain

render 3-d graphics in real time in response to user input

ex of languages C++, C#

17
New cards

What are the 4 language evaluation criteria

readability

writability

reliability

cost

18
New cards

What is the most important criterion for judging a programming language

readability

19
New cards

How were language constructs designed before being designed from the users perspective

initially designed from the computers perspective

20
New cards

Why has readability become important (2)

ease of maintenance largely depends of readability

results in a shift from machine-oriented focus to human-oriented focus

21
New cards

What is orthogonality

relatively small set of primitive constructs can be combined in a small number of ways

ex. operators +, -, *, / can be used with different data types interchangeably

22
New cards

(T/F) Most of the language characteristics that affect readability also affect writability

True

23
New cards

Describe the writability criteria

measures how easy it is for a language to create programs for a selected problem

24
New cards

How do simplicity and orthogonality work together

there are a smaller number of primitive constructs with a consistent set of rules for combining them

25
New cards

What is abstraction

the ability to define and use complicated structures or operations in ways that allow many of the details to be ignored

26
New cards

What are the two distinct categories of abstraction

process and data

27
New cards

What is process abstraction

hides the underlying implementation of a process

28
New cards

What is data abstraction

reduction of data to simplify it

29
New cards

What is expressivity

relatively convenient rather than cumbersome ways of specifying computations

30
New cards

A program is said to be reliable if it performs what conditions (4)

type checking

exception handling

aliasing

readability and writability

31
New cards

what is type checking (2)

testing for type errors in a given program either by the compiler or during program execution

sooner an error is detected the less expensive it is to repair

32
New cards

What language requires type checking of nearly all variables at compile time

java

33
New cards

What is exception handling

the ability to intercept runtime errors, take corrective action, and then continue

34
New cards

What is aliasing (3)

two or more different reference method or names for the same storage unit

in C variables and pointers may refer to same location in memory

very dangerous feature

35
New cards

What criteria both influence reliability

readability and writability

36
New cards

What factors may affect cost

writing programs

training programmers

compiling programs

executing programs

37
New cards

What is Von Neumann architecture? (2)

programs and data are stored in a separate storage unit called memories and are treated the same

meant that computers built with the architecture would be easier to reprogram

38
New cards

What is a imperative programming language

programming with an explicit sequence of commands that update state

39
New cards

What are the central features of imperative programming languages (3)

variables model memory cells

assignment statements model piping

iteration is efficient

40
New cards

What languages do imperative languages include (3)

includes languages that support OOP

includes scripting languages

includes visual languages

41
New cards

What are examples of imperative languages (10)

C, C++, C#, Objective-c, Java, Perl, Python, Ruby, JavaScript, Visual BASIC .NET

42
New cards

What is a procedural programming language

subset of imperative programming which utilizes subroutines

43
New cards

what is the von Neumann bottleneck

primary limiting factor in the speed of computers

44
New cards

What is a functional programming language (2)

the main way to do computations is to apply a function to the given parameters

functions are first class citizens

45
New cards

What are examples of functional programming languages (7)

LISP, Haskell, Racket, Clojure, Scala, ML, F#

46
New cards

What is a logical programming language (3)

rule-based language

rules are specified in no particular order

language implementation system must choose an order in which the rules are used

47
New cards

What are examples of logical programming languages

Prolog, Answer Set Programming, Datalog

48
New cards

What two language categories are subcategories of declarative languages

function and logical language

49
New cards

What are examples of declarative languages (4)

SQL, HTML, XSLT, Prolog

50
New cards

What are examples of Markup/programming hybrid languages (5)

JSTL, XML, XSLT, JSON, SQL

51
New cards

What are the language design tradeoffs (3)

readability vs cost of execution

readability vs writability

writability vs reliability

52
New cards

What is an example of reliability vs cost of execution

java demands all references to array elements be checked for proper indexing, which leads to increased execution costs

53
New cards

What is an example of readability vs writability

APL provides many powerful operators, allowing complex computations to be written in a compact program but at the cost of poor readability

54
New cards

What is an example of writability vs reliability

C++ pointers are powerful and very flexible but are unreliable

55
New cards

What are the 3 implementation methods

compilation

pure interpretation

hybrid implementation system

56
New cards

What is compilation and where is it used (2)

programs are translated into machine languages, includes JIT systems

used in large commercial applications

57
New cards

What is pure interpretation and where is it used (2)

programs are interpreted by another program known as an interpreter

used in small programs or when efficiency is not an issue

58
New cards

What is a hybrid implementation system and where is it used (4)

a compromise between compilers and pure interpreters

used in small and medium systems when efficiency is not the first concern

faster than pure interpretation

high-level language program is translated to an intermediate language that allows easy interpretation

59
New cards

What are the 4 phases of compilation

lexical analysis

syntax analysis

semantics analysis

code generation

60
New cards

What are some characteristics of pure interpretation (5)

no translation

easier implementation

slower execution

requires more space

rarely seen in traditional high-level languages

61
New cards

What is a just-in-time implementation system (3)

initially translate programs to an intermediate language

then compile the subprograms into machine code when they are called

widely used for Java programs

62
New cards

What is a preprocessor (2)

commonly used to specify that code from another file is to be included

processes a program immediately before the program is compiled to expand embedded preprocessor macros

63
New cards

What are the 4 reasons that using machine code was wrong

poor readability

poor modifiability

expression coding was tedious

machine deficiencies -- no indexing or floating point

64
New cards

What is Short Code (2)

expressions were coded by byte-pair values

many equations can be coded in a word

65
New cards

What is Speed coding (4)

pseudo operation for arithmetic and math functions, including floating-point operations

conditional and unconditional branching

auto increment registers for array access

very slow

66
New cards

Describe Fortran I (5)

first implemented version of fortran

no separate compilation

compiler released after 18 years of effort

large programs rarely compiled correctly

code was very fast

67
New cards

Describe Fortran II (2)

Independent compilation

fixed bugs of fortran 1

68
New cards

Describe Fortran IV (3)

explicit type declarations

logical selection statement

subprogram names could be parameters

69
New cards

Describe Fortran 77 (3)

character string handling

logical loop control statement

if-then-else statements

70
New cards

What significant changes did Fortran 77 bring (6)

modules

dynamic arrays

pointers

recursion

CASE statement

parameter type checking

71
New cards

Describe LISP (5)

language used for AI research

used for processing data in lists rather than arrays

symbolic computation rather than numeric

only two data types: atoms and lists

syntax is based on lambda calculus

72
New cards

In what way did LISP pioneer function programming (2)

no need for variables or assignment

control via recursion and conditional expressions

73
New cards

Describe Scheme

dialect of lisp with strong focus on function programming concepts

also supports procedural and imperative-style programming when needed

74
New cards

Describe some characteristics of Scheme (4)

small

extensive use of static scoping

functions as first-class entities

simple syntax making it ideal for educational applications

75
New cards

What is COMMON LISP (2)

effort to combine features of several dialects of LISP into a single language

large, complex, used in industry for some large applications

76
New cards

Describe Scala (3)

full functional support

very strong type system

runs in JVM

77
New cards

Describe the environment of development of ALGOL 60 (4)

fortran barely arrived

many languages were being developed but for specific machines

no portable language

no universal language

78
New cards

What was the reason for developing ALGOL 60

result of efforts to design a universal language

79
New cards

Describe ALGOL 58 (6)

concept of type was formalized

names could be any length

arrays could have any number of subscripts

semicolon as a statement separator

if had an else-if clause

no I/O which would make it machine dependent

80
New cards

What new features did ALGOL 60 bring (5)

two parameter passing methods

block structure

subprogram recursion

stack-dynamic arrays

still no I/O and no string handling

81
New cards

What was COBOL based on

FLOW-MATIC

82
New cards

What were the goals of COBOL (4)

must look like simple english

must be easy to use even if less powerful

broaden the base of computers

must not be biased by current compiler problems

83
New cards

Describe COBOL (5)

first macro facility in a high-level language

hierarchical data structures

nested selection statements

long names

separate data division

84
New cards

What were the design goals of BASIC (5)

easy to learn for non science students

pleasant and friendly

fast turnaround for homework

free and private access

user time is more important than computer time

85
New cards

Describe the features of PL/I (5)

first unit-level concurrency

first exception handling

switch-selectable recursion

first pointer data type

first array cross sections

86
New cards

What were some concerns with PL/I (2)

many new features were poorly designed

too large and too complex

87
New cards

Describe APL (3)

designed as a hardware description language at IBM

highly expressive

programs are very difficult to read

88
New cards

Describe SNOBOL (3)

designed as a string manipulation language

powerful operators for string pattern matching

slower than alternative languages

89
New cards

Describe SIMULA 67 (2)

designed primarily for system simulation

based on ALGOL 60 and SIMULA I

90
New cards

What were SIMULA 67's primary contributions (2)

coroutines

classes, objects, and inheritance

91
New cards

What languages were used for scientific computing (3)

IBM 620 and 7090 computers

FORTRAN

SHARE user group

92
New cards

What languages were used for business computing (3)

IBM 1401, 7080

COBOL

GUIDE user group

93
New cards

Describe ALGOL 68 (4)

design based on orthogonality

user defined data structures

reference types

dynamic arrays

94
New cards

What languages did ALGOL 68 have influence on (3)

Pascal, C, and Ada

95
New cards

What impact did Pascal have

largest impact was on teaching structured programming

96
New cards

Describe C (4)

designed for systems programming

evolved primarily from BCLP, B, and ALGOL 68

powerful set of operators but poor type checking

initially spread through UNIX

97
New cards

Describe Ada 95 (4)

support for OOP through type derivation

better control for shared data

new concurrency features

more flexible libraries

98
New cards

What language was the first full implementation of an object-oriented language

Smalltalk

99
New cards

What language pioneered the graphical user interface design

Smalltalk

100
New cards

Describe C++ (3)

combined imperative and object-oriented programming

evolved from C and SIMULA 67

large and complex language because it supports both procedural and oO programming