• 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/28

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;

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