1/29
midterm
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
syntax
the set of rules that govern the structure and formatting of a programing language dictating how symbols, words, and punctuation must be combined to form valid and executable code.
semantics
the meaning and behavior of a program or programming language; use the mathematic relations notation below to express
imperative programming paradigm
programs tell the computer what to do
declarative programming paradigm
programs describe the characteristic of a solution
functional programming
declarative paradigm that views computation as the application of mathematical functions to data
language
a set of strings over an alphabet
interpreter
translates each source code statement every time it is executed; process: read, eval, print, loop (REPL); used in the translation of Python
compiler
results in a new “translated program” being stored; execution is a 2-step process
expressivity
the breadth of ideas that can be represented and communicated in that language
extensibility
allows programmers to define new languages features and extend the current features of a language
abstraction
mechanisms for hiding details
concurrency
the ability of a system to execute multiple tasks seemingly at the same time
security
how effectively a language through its design and features, helps developers write code that is resistant to vulnerabilities at attacks
modularity
features for dividing a software system into smaller, independent, and self contained units
maintainability
how language features impact the ease with which a software system, written in that language, can be modified, updated, extended, or repaired over time
scalability
the capacity of a system to support growth or to manage an increasing volume of work
error handling
the mechanisms and techniques used to anticipate, detect, and respond to abnormal or unexpected situations that can occur during program execution
efficiency
how effectively a language utilizes system resources
readability
how easy it is for a human to understand code written in a particular language
interoperability
the ability for two or more languages to interact as part of the same system
portability
refers to the ability of code written in one environment to function correctly and efficiently in another, without significant modification
rules for defining inductive sets
specification of base elements (base case), zero or more inductive rules that define memberships of new elements in terms of existing elements, closure rule that specifies that the set does not contain any elements other than those specified by the base case and the other case
parse trees
show syntax structure; internal nodes for non-terminals; leaf nodes for terminals
derivation
the sequence of applications of grammar rules that makes the completed string of terminals from a grammar start symbol.
sentential form
a string of symbols derived from the start symbol of a grammar
design patterns
a general, reusable solution to a commonly occurring problem in many contexts in software design
visitor design pattern
separates the algorithm from the object structure; because of this separation, new operations can be added to existing object structures without modifying the structures
scope
the locations in a program where a definition is visible and has an effect
lexical scoping
the binding of a variable to a value is based on the code syntax structure
dynamic scoping
to reconcile a reference to a non-local variable, one must trace the run-time history of the variable