4080 Midterm

studied byStudied by 116 people
5.0(3)
Get a hint
Hint

simplicity

1 / 61

flashcard set

Earn XP

Description and Tags

62 Terms

1

simplicity

language with a minimal set of features, with rules on how to apply them and combine them as simply and clearly as possible

New cards
2

orthogonality

the way different constructs can be combine, and how simple these combinations are to understand

New cards
3

level of abstraction

the features provided to create abstractions (C=simple with low lv of ab. while Java=not simple with high lv of ab)

New cards
4

portability

to what degree can the program created in the language be moved from one system to another

New cards
5

cost

cost of using the language in a project (development, compilation, maintenance, execution)

New cards
6

expressivity

how easy it is to come up with different solutions to a problem

New cards
7

von neuman architecture

most common form of computer architecture on modern machines

New cards
8

compiler

take source code and turn it into machine code

New cards
9

interpreter

program that takes source code and executes it

New cards
10

virtual machine

code is compiled into byte code (instructions are sent to a simulated computer)

New cards
11

syntax

how we create the program

New cards
12

lexicon

alphabet, rules for names, reserved words, case sensitive

New cards
13

grammar

rules to create valid sentences

New cards
14

semantics

the meaning of what is used to create the program

New cards
15

variable

a name of a memory location of a particular data type that can be destructively updated

New cards
16

binding

connection between a name and a property

New cards
17

memory binding

(memory allocation) process of reserving and associating with a name

New cards
18

static memory allocation

memory is allocated before execution by the compiler (fast runtime)

New cards
19

dynamic memory allocation

memory is allocated while program is running (overhead when finding memory during runtime)

New cards
20

process memory block

stack/heap/data/text

New cards
21

type binding

association of a name to a type (lexical/syntactic/semantic/translation/optimization/transcription)

New cards
22

static typing

name are assigned a type before the program is run

New cards
23

dynamic typing

name is assigned a type while the program is running

New cards
24

explicit vs implicit typing

if the language requires the use of a syntactic feature to specify the type then the language is explicit

New cards
25

scope bind

process of associating a name with he a scope

New cards
26

scope

region/block area in the code where names are visible

New cards
27

static scope

(lexical scoping) the scope of a name is defines while the code is being written with lexical features

New cards
28

dynamic scoping

visibility of names is determined during run time by looking at the stack activation records.

New cards
29

symbol table

symbol/l-value: value of the memory location that will hold the variable you want to store/r-value: actual value you want to store

New cards
30

expression

sequence of symbols that yields a value (arithmetic / boolean)

New cards
31

arithmetic expression

deals with numbers

New cards
32

boolean expression

deals with relational and logical expressions

New cards
33

operator

a syntactic feature in a language that represents a function that takes input and produces a value

New cards
34

unary

deals with 1 operand ex: !

New cards
35

binary

deals with 2 operands

New cards
36

ternary

deals with 3 operands ex: ?

New cards
37

N-ary

deals with N amount of operands

New cards
38

prefix

operator is place before the operands ex: + 3 4

New cards
39

infix

operator is place between the operands ex: 3 + 4

New cards
40

suffix

operator is place after the operands ex: x++

New cards
41

type

the … of a name is a property that describes the nature of the data associated with the name, and how it should be handled

New cards
42

primitive type

part of the definition of the language, not made of other types, atomic (int, float, char, bool)

New cards
43

user defined type

a type created by a user, mechanism used to create this type is high complexity can go from simple enumeration to abstract data types ADT

New cards
44

arithmetic expression

any expression that yields a numerical type ( + , - , / , ** , % )

New cards
45

order of evaluation

in what order are operands evaluated L>R or R>L

New cards
46

precedence

a mechanism to sort ambiguous expressions by creating hierarchy of operands where the position of the hierarchy determines the relative binding strength of the operator (1. expo 2. mod 3. mul/dif 4. add/sub)

New cards
47

parentheses

if order of evaluation and precedence yields an expression with semantics different from desired, this can be used to override and impose a particular order of operation

New cards
48

side effect

an expression is said to be … free (aka pure) if the evaluation results in visual change (destructive update) in memory

New cards
49

referential transparency

if substitution if the expression but the value it yields results in a program with the same semantics then it is…

New cards
50

overloading of operands

if the operand performs more than one function depending on the type ex: in java, + can be used: (int + int)addition or (str + str)concatenation

New cards
51

type conversion

when a program requires to convert a numerical type into another

New cards
52

type coercion

conversion is implicit / automatic

New cards
53

casting

(explicit type coercion) conversion is explicit and performed with syntactic features from the language

New cards
54

mixed-mode expression

an expression where then is more than one type of operand

New cards
55

overflow

when an arithmetic expression results in a number greater than the maximum representable number in the current data format

New cards
56

underflow

occurs then a floating point operation results in a number that is less than the minimum representable number (mantissa + exponent)

New cards
57

relational expression

greater than, less than, equal to, not equal to

New cards
58

logical expression

and, or, not , implication

New cards
59

short-circuit evaluation

lazy evaluation which given a logical operation, if the evaluation of the first operand is enough to determine the value , then the second operand is not evaluated

New cards
60

string

a sequence of characters usually enclosed by some syntactical delimiters ex: “ “

implementation:

  • array: fixed size

  • linked list: slow access to characters

New cards
61

mutability

when it is possible to change string length and content

New cards
62

arrays

simplest data structure in most imperative languages and are indexed sequence of elements on the same type

  • allocated in contiguous blocks of memory

  • once located, size can not be modified

New cards

Explore top notes

note Note
studied byStudied by 63 people
... ago
5.0(1)
note Note
studied byStudied by 21 people
... ago
4.0(1)
note Note
studied byStudied by 43 people
... ago
5.0(1)
note Note
studied byStudied by 1 person
... ago
5.0(1)
note Note
studied byStudied by 58 people
... ago
5.0(1)
note Note
studied byStudied by 126 people
... ago
4.5(2)
note Note
studied byStudied by 163 people
... ago
5.0(1)

Explore top flashcards

flashcards Flashcard (58)
studied byStudied by 29 people
... ago
5.0(1)
flashcards Flashcard (62)
studied byStudied by 34 people
... ago
5.0(4)
flashcards Flashcard (30)
studied byStudied by 10 people
... ago
5.0(2)
flashcards Flashcard (74)
studied byStudied by 3 people
... ago
5.0(1)
flashcards Flashcard (57)
studied byStudied by 2 people
... ago
5.0(1)
flashcards Flashcard (173)
studied byStudied by 119 people
... ago
5.0(2)
flashcards Flashcard (80)
studied byStudied by 5 people
... ago
5.0(1)
flashcards Flashcard (61)
studied byStudied by 3 people
... ago
5.0(1)
robot