• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/10

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

10 Cards in this Set

  • Front
  • Back
  • 3rd side (hint)

6 Reasons for Studying Concepts

+ capacity to express ideas


• improved background for choosing appropriate languages


• + ability to learn new languages


• better understanding of the significance of implementation


• better use of languages that are already known


• overall advancement of computing

IBLIKA

5 Programming Domains

• Scientific Applications - modelling, computations, Fortran


• Business Applications - COBOL


• Artificial Intelligence - LISP, Prolog


• Systems Programming - C


• Web Software - web apps, servers

SBASW

4 Language Categories or Paradigms

Imperative


Functional


Logical


Object-Oriented

IFLO

7 Language Evaluation Criteria

- Readability


- Writability (Simplicity and Orthogonality, Support for Abstraction, Expressivity)
- Reliability (Type checking, Exception Handling, Aliaing, Readability and Writability)
- Cost (Training, Writing, Compiling and executing, language implementation system, development, maintenance and reliability)


- Portability


- Generality


- Well-definedness

RWRCPGW

3 Language Design Trade-offs

Reliability vs Cost of execution


Expressivity (writability) vs Readability


Flexibility vs Safety

R v C


E v R


F v S

Influence of Language Design: Computer Architecture

Von Neumann Architecture


Fetch-Execute Cycle

Influence: Programming Methodologies

Cost of computing: hardware -> software


Software development: procedure oriented -> data oriented


New prog paradigms, new prog lang

Prog Methodologies Timeline

1950s and early 1960s - machine efficiency


Late 1960s - structured programming


Late 1970s - data abstraction


Middle 1980s - object-oriented programming

4 Implementation Methods

Compilation


Pure Interpretation


Hybrid Implementation Systems
Preprocessors

Programming Environment

a collection of tools used in software dev (file system, text editor, linker, compiler, IDE)