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;
28 Cards in this Set
- Front
- Back
Key characteristics that distinguish programming languages from other languages
|
1.) govern some process on the computer
2.) unambigous 3.) formally defined 4.) static |
|
What are the two ways of having n machines and i languages and being able to run the languages on the machines
|
1.) L2...LM all translate to L1, L1 -> each machine is (L + M - 1)
2.) Each language is converted to each machine (L*M) |
|
What is used as a widespread intermediate language
|
C
|
|
What does an interpreter require that a translator doesnt
|
A program AND data
|
|
Assembler
|
translator
|
|
simulator
|
interpreter
|
|
JVM
|
Java virtual machine interpreter written for machine hardware
|
|
JIT
|
Just in time - only happens in interpreters, during execution, java byte code is converted to machine code and then run in hardware rather than through software
|
|
When using JIT the compiler must
|
1.) keep track of where it called from
2.) keep track of what has been compiled to machine code 3.) keep track of current state |
|
Criteria for evaluating programming languages
|
Readability
Writability Reliability Overall cost |
|
Value of a programming langauge is dependent on..
|
problem-solving domain
|
|
What is programming language designs based on
|
Machine architecture and software design methodologies
|
|
Syntax
|
What are legal programs in some programming language
|
|
What is syntax described with
|
CFG, BNF,EBNF
|
|
Semantics
|
What do the instructions of a PL do in execution
|
|
What is used to describe semantics
|
english
|
|
methodology
|
what are you supposed to use the features of a langue for
|
|
Runtime versus compile-time
|
Pure translation or interpretation is easy to identify
Jit is harder to determine |
|
BNF
|
Backus naur Form used to describe syntax
|
|
Nonterminals
|
<>
|
|
terminals
|
0,1,2, etc
|
|
EBNF [] {} * +
|
optional, repetition (0 or more), repetition (0 or more), repetition (1 or more)
|
|
BNF vs EBNF
|
BNF is based on context free grammar and can be parsed with recursive descent while EBNF has additional symbols and is parsed with iteration not recursion
|
|
Ambigious grammar
|
two ways to derive a parse tree for the same string
|
|
Concrete vs abstract parse tree
|
Abstract eliminates unnecessary terminals and leaves the nonterminals
|
|
Writability
|
How easy it is to create programs for a chosen problem domain
|
|
reliability
|
performs to its specifications under all conditions: type checking, exception handling
|
|
cost
|
training, writing, compiling, executing programs
|