CS 4337

studied byStudied by 297 people
5.0(1)
Get a hint
Hint

Describe Prolog (5)

1 / 234

encourage image

There's no tags or description

Looks like no one added any tags here yet for you.

235 Terms

1

Describe Prolog (5)

based on formal logic

non-procedural

inefficient

few application areas

intelligent database system that uses an inferencing process

New cards
2

What were the contributions of Ada (4)

packages - support for data abstraction

exception handling

generic program units

concurrency - through the tasking model

New cards
3

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

New cards
4

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

New cards
5

What is a context-free grammar

language generators, meant to describe the syntax of natural languages

New cards
6

What feature does the programming language Whitespace have

interpreter ignores any non-whitespace character

New cards
7

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

New cards
8

What are the 8 programming domains

scientific applications

business applications

artificial intelligence

systems programming

web software

embedded systems

3-d graphics and animation

gaming

New cards
9

Describe the scientific applications domain

large numbers of floating point computations and use of arrays

ex of language is fortran

New cards
10

Describe the business applications domain

produce reports using decimal numbers and characters

ex of language is cobol

New cards
11

Describe the AI domain

symbols rather than numbers manipulated, use of linked lists

ex of languages LISP, PROLOG

New cards
12

Describe the systems programming domain

requires efficiency because of continuous use

ex of language X

New cards
13

Describe the web software domain

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

New cards
14

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

New cards
15

Describe the 3-D graphics and animation domain

render very hi-res animation for cinema and television

ex languages Java, C

New cards
16

describe the gaming domain

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

ex of languages C++, C#

New cards
17

What are the 4 language evaluation criteria

readability

writability

reliability

cost

New cards
18

What is the most important criterion for judging a programming language

readability

New cards
19

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

initially designed from the computers perspective

New cards
20

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

New cards
21

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

New cards
22

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

True

New cards
23

Describe the writability criteria

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

New cards
24

How do simplicity and orthogonality work together

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

New cards
25

What is abstraction

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

New cards
26

What are the two distinct categories of abstraction

process and data

New cards
27

What is process abstraction

hides the underlying implementation of a process

New cards
28

What is data abstraction

reduction of data to simplify it

New cards
29

What is expressivity

relatively convenient rather than cumbersome ways of specifying computations

New cards
30

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

type checking

exception handling

aliasing

readability and writability

New cards
31

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

New cards
32

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

java

New cards
33

What is exception handling

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

New cards
34

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

New cards
35

What criteria both influence reliability

readability and writability

New cards
36

What factors may affect cost

writing programs

training programmers

compiling programs

executing programs

New cards
37

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

New cards
38

What is a imperative programming language

programming with an explicit sequence of commands that update state

New cards
39

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

variables model memory cells

assignment statements model piping

iteration is efficient

New cards
40

What languages do imperative languages include (3)

includes languages that support OOP

includes scripting languages

includes visual languages

New cards
41

What are examples of imperative languages (10)

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

New cards
42

What is a procedural programming language

subset of imperative programming which utilizes subroutines

New cards
43

what is the von Neumann bottleneck

primary limiting factor in the speed of computers

New cards
44

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

New cards
45

What are examples of functional programming languages (7)

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

New cards
46

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

New cards
47

What are examples of logical programming languages

Prolog, Answer Set Programming, Datalog

New cards
48

What two language categories are subcategories of declarative languages

function and logical language

New cards
49

What are examples of declarative languages (4)

SQL, HTML, XSLT, Prolog

New cards
50

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

JSTL, XML, XSLT, JSON, SQL

New cards
51

What are the language design tradeoffs (3)

readability vs cost of execution

readability vs writability

writability vs reliability

New cards
52

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

New cards
53

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

New cards
54

What is an example of writability vs reliability

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

New cards
55

What are the 3 implementation methods

compilation

pure interpretation

hybrid implementation system

New cards
56

What is compilation and where is it used (2)

programs are translated into machine languages, includes JIT systems

used in large commercial applications

New cards
57

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

New cards
58

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

New cards
59

What are the 4 phases of compilation

lexical analysis

syntax analysis

semantics analysis

code generation

New cards
60

What are some characteristics of pure interpretation (5)

no translation

easier implementation

slower execution

requires more space

rarely seen in traditional high-level languages

New cards
61

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

New cards
62

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

New cards
63

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

New cards
64

What is Short Code (2)

expressions were coded by byte-pair values

many equations can be coded in a word

New cards
65

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

New cards
66

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

New cards
67

Describe Fortran II (2)

Independent compilation

fixed bugs of fortran 1

New cards
68

Describe Fortran IV (3)

explicit type declarations

logical selection statement

subprogram names could be parameters

New cards
69

Describe Fortran 77 (3)

character string handling

logical loop control statement

if-then-else statements

New cards
70

What significant changes did Fortran 77 bring (6)

modules

dynamic arrays

pointers

recursion

CASE statement

parameter type checking

New cards
71

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

New cards
72

In what way did LISP pioneer function programming (2)

no need for variables or assignment

control via recursion and conditional expressions

New cards
73

Describe Scheme

dialect of lisp with strong focus on function programming concepts

also supports procedural and imperative-style programming when needed

New cards
74

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

New cards
75

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

New cards
76

Describe Scala (3)

full functional support

very strong type system

runs in JVM

New cards
77

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

New cards
78

What was the reason for developing ALGOL 60

result of efforts to design a universal language

New cards
79

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

New cards
80

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

New cards
81

What was COBOL based on

FLOW-MATIC

New cards
82

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

New cards
83

Describe COBOL (5)

first macro facility in a high-level language

hierarchical data structures

nested selection statements

long names

separate data division

New cards
84

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

New cards
85

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

New cards
86

What were some concerns with PL/I (2)

many new features were poorly designed

too large and too complex

New cards
87

Describe APL (3)

designed as a hardware description language at IBM

highly expressive

programs are very difficult to read

New cards
88

Describe SNOBOL (3)

designed as a string manipulation language

powerful operators for string pattern matching

slower than alternative languages

New cards
89

Describe SIMULA 67 (2)

designed primarily for system simulation

based on ALGOL 60 and SIMULA I

New cards
90

What were SIMULA 67's primary contributions (2)

coroutines

classes, objects, and inheritance

New cards
91

What languages were used for scientific computing (3)

IBM 620 and 7090 computers

FORTRAN

SHARE user group

New cards
92

What languages were used for business computing (3)

IBM 1401, 7080

COBOL

GUIDE user group

New cards
93

Describe ALGOL 68 (4)

design based on orthogonality

user defined data structures

reference types

dynamic arrays

New cards
94

What languages did ALGOL 68 have influence on (3)

Pascal, C, and Ada

New cards
95

What impact did Pascal have

largest impact was on teaching structured programming

New cards
96

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

New cards
97

Describe Ada 95 (4)

support for OOP through type derivation

better control for shared data

new concurrency features

more flexible libraries

New cards
98

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

Smalltalk

New cards
99

What language pioneered the graphical user interface design

Smalltalk

New cards
100

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

New cards

Explore top notes

note Note
studied byStudied by 24 people
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 67 people
Updated ... ago
4.5 Stars(2)
note Note
studied byStudied by 18 people
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 33 people
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 75 people
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 16 people
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 17 people
Updated ... ago
5.0 Stars(1)
note Note
studied byStudied by 21 people
Updated ... ago
5.0 Stars(1)

Explore top flashcards

flashcards Flashcard669 terms
studied byStudied by 12 people
Updated ... ago
5.0 Stars(1)
flashcards Flashcard25 terms
studied byStudied by 16 people
Updated ... ago
5.0 Stars(1)
flashcards Flashcard106 terms
studied byStudied by 36 people
Updated ... ago
5.0 Stars(1)
flashcards Flashcard145 terms
studied byStudied by 3 people
Updated ... ago
5.0 Stars(1)
flashcards Flashcard46 terms
studied byStudied by 3 people
Updated ... ago
5.0 Stars(1)
flashcards Flashcard20 terms
studied byStudied by 2 people
Updated ... ago
4.0 Stars(1)
flashcards Flashcard32 terms
studied byStudied by 35 people
Updated ... ago
4.0 Stars(1)
flashcards Flashcard131 terms
studied byStudied by 3 people
Updated ... ago
5.0 Stars(3)