Key Terms
- abstract method
- declared without a code block for implementation; the stubs of methods that will be implemented by a class which uses the interface
- abstraction
- way of thinking and expressing algorithms to indicate what the programmer wants the hardware to do
- access modifier
- keyword that denotes where in code to access a variable or method
- argument
- value of a function call, which must match the parameters in both number and data type
- array
- named variable that references a block of contiguous memory locations
- array initializer
- values separated by commas placed between curly braces
- assembly
- process of converting a low-level assembly language product of the compiler into machine language that the computer can execute; binary form
- assignment statement
- operation by which a value is stored in a variable
- back end
- compiler step that is responsible for code generation or production of the target code
- basic block
- minimal-length sequence of instructions that will always execute in its entirety if it executes at all, equivalent to a code block
- best practice
- most accepted style and structure of code that can be used to ensure proper software development, which makes it possible to learn new languages easily once a programmer has mastered a given one
- binary operator
- operator surrounded by two operands
- Boolean
- data types that can hold the values true or false
- bottom-tested loop
- condition for further loop iteration set at the exit from the code block
- busy waiting
- condition of a process that is continually looking to see if it has access to a critical section, taking processor time from all processes
- bytecode
- object code produced by Java compilation, which is then interpreted by the Java virtual machine
- call stack
- execution stack that is the data structure that controls the calling and return of functions
- case-sensitive
- refers to whether uppercase and lowercase letters are treated as distinct from each other
- class
- code blueprint from which objects are constructed
- client-side script
- script that runs on a client computer, usually under the control of a web browser and needs an interpreter on the client’s machine
- code block
- statement that consists of one or more statements that are structured in a sequential group and delineated as such
- code generation
- transformation of the code to the target or object language
- coercion
- ability of a variable of a data type to be forced to hold a value of a different data type
- combined assignment
- when the assignment operator is combined with another operator, usually mathematical, as a shortcut notation
- comment
- container used to hold documentation in code
- Common Gateway Interface (CGI)
- executable program residing in a special directory known to the web server management program
- Common Language Runtime (CLR)
- takes managed code and provides a JIT execution that allows all the languages to play nicely with each other
- compilation
- single process that takes the source code that the programmer creates and transforms it into another language
- complex data type
- data type consisting of multiple primitive types used as its building blocks
- condition-controlled
- loop that will continue to iterate until a specific condition is met
- conditional expression
- (also: Boolean expression) evaluates to the Boolean values of true or false
- constructor
- specialized method that is called upon to instantiate an object from a class
- count-controlled
- loop that will continue to iterate a specific number of times
- decrement operator (--)
- unary operator that lowers the value of its operand by one
- destructor
- specialized methods used in some languages to destroy an instantiated object and recover its memory
- determinative
- loop that is predictable in its number of iterations
- dynamic linker
- compilation process which allows the program to be carried over to memory for execution after it runs
- dynamic method binding
- all methods are resolved dynamically at runtime, not by the compiler, sometimes referred to as late binding
- element
- each “shelf” of an array that can hold a value of a data type
- embedded script
- script in which one language is embedded inside another
- encapsulation
- attributes and behaviors of classes and objects are self-contained and go along with them throughout their lifetime
- event-driven
- when behavior of programs is controlled by actions (events) which are listened for and then acted upon or handled
- exception
- unusual behavior that can be recovered using exception handling support the programming language provides
- exponentiation operator (**)
- operator that raises the value of one operand to the power of the second operand
- expression
- construct in a programming language that evaluates two values
- first-class function
- function that can be assigned as a value to a variable
- floating point
- data type consisting of a decimal number
- flow of control
- order in which, or if, the statements of a program are executed
- for loop
- particular loop construct that is top-tested and count-controlled
- formal parameter
- represent values that the function needs to receive to do its job
- front end
- compilation step that is responsible for the analysis of the source code
- function
- code sequence that is designed to perform a particular task
- function call
- code which invokes the function and passes to it values that may be needed for it to do its job
- function signature
- defines a function and informs the compiler or interpreter about the details that it needs to call upon that function and what it may return
- functional programming
- programming model in which the key concept is that programs are constructed by composing functions and applying them
- garbage collection
- process used to destroy unneeded objects and recover memory when there are no longer any references to them in the code
- global optimization
- code improvements at multiple layers that include loop performance improvement, register allocation, and instruction scheduling
- high-order function
- function that can take one or more first class functions as arguments
- hybrid implementation
- method of language translation which involves the use of both a compiler and an interpreter
- identifier
- name given to a variable or other construct
- imperative language
- emphasizes a “tell the computer what to do” approach
- increment operator (++)
- unary operator that raises the value of its operand by one
- indexed array
- array in which the elements are numbered with an index, starting at zero
- information hiding
- masking of the actual bits and bytes of implementation that the user of a module does not need to know
- inheritance
- feature of OOP in which classes and objects take on specified attributes from their ancestors
- initialization
- assigning its first value to a variable
- instantiation
- process of building an instance (an object) of a class
- integer
- data type consisting of whole numbers
- interface
- construct which resembles a class definition but contains only methods which are constructed as abstract methods
- intermediate code
- language translation phase that produces a code level between the source code and the object code
- intermediate form (IF)
- middle end compilation product created after semantic analysis if the program passes all checks
- intermediate language
- generated from programming source code, but the CPU typically cannot execute directly
- iteration
- looping, going around and re-executing sequences of statements
- Java virtual machine (JVM)
- Java interpreter that translates bytecode into executable code
- just-in-time (JIT) compilation
- process when intermediate code gets its final compilation (or usually interpretation) phase right at the start of runtime
- just-in-time (JIT) translation
- process in which intermediate language is translated and executed exactly when needed
- keyword
- word reserved by the language that has a special meaning
- late binding
- when all methods are resolved dynamically at runtime, not by the compiler; sometimes referred to as dynamic binding
- lexical analysis
- compilation step that converts the source code strings of characters into tokens
- literal
- value of one of the legal data types of an HLL that can be written directly into the code
- local optimization
- elimination of redundant operations in a basic block
- lvalue
- left-hand operand in an expression
- managed code
- code targeted to run under a particular runtime environment
- member
- attribute or method that is encapsulated within a class or object
- metadata
- data about data
- middle end
- compilation step responsible for performing optimizations of the code
- modularization
- splitting a large job into independent units which may be then called upon to perform tasks
- module
- component of a program
- modulo operator (%)
- operator which evaluates to the remainder left after division
- multiple inheritance
- ability to inherit attributes and methods from more than one parent
- multitask
- ability of an application to process more than one task at the same time or to engage in concurrency
- mutable
- something that is changeable, possibly referring to state
- name-value pair
- construct-like variables that is named and can hold values
- named constant
- container that can be assigned the value of a data type which may not be changed thereafter
- non determinative
- loop for which we cannot predict the number of iterations (condition controlled)
- object code
- machine code produced by a compiler or interpreter
- operator
- performs various types of operations (processes) on values
- optimization
- producing what will be needed to generate the fastest and most efficiently running code possible
- override
- define another method with the same name and modify its signature
- parallelism
- when programs can have more than one part of the code running simultaneously
- parsing
- front-end compilation process, also referred to as syntax analysis, or reading the code to make sure it conforms with the syntax rules of the language
- pass by reference
- actual memory address of a variable passed as an argument, meaning the function has access to modify the original variable
- pass by value
- copy made of a value and passed as an argument, meaning the function has no access to modify the original variable
- polymorphism
- feature of OOP in which methods inherited may perform in different ways in different subclasses and depend upon their context
- precedence
- order of operations rules that determine the order in which operators in statements are evaluated
- preprocessing
- pre-compilation step in which the source code is manipulated to prepare it for the compilation stage
- preprocessor directive
- code that describes resources the program needs in order to compile, usually files to insert into the source code
- primitive data type
- (also: basic data type) simplest data type of a language that can usually be represented directly by the hardware memory and registers
- procedural language
- allows programmers to group statements into blocks of code within the scope of which variables may be defined and manipulated independently from the rest of a program
- public interface
- documentation of only what a user needs to access an object, its attributes, and its methods
- pure function
- function that will return the same result every time given the same arguments
- race condition
- when the condition of a program and its behaviors are not synchronized
- readability
- measures how easily an HLL can be read and understood
- reference variable
- variable that holds memory addresses
- return
- command that ends a function and/or sends values back to the place at which the function was called
- runtime error
- exception that is serious enough that it cannot or should not be handled by the software
- rvalue
- right-hand operand in an expression
- scope
- defines both the visibility of variables to locations in the code and the physical lifetime of variables
- scripting language
- characterized by placing a list of code statements into a file, referred to as a script
- selection
- making a decision on which path of execution to follow
- semantic analysis
- compilation step that discovers the meaning of the code
- sentinel
- expression that sets the condition at the entry or exit of a loop for continued iteration
- separate compilation
- situation where pieces of the program can be compiled and independently built
- sequential execution
- executing statements in the order in which they appear
- server-side script
- script that runs on a server in a web designer’s domain
- shared data
- data available to multiple program locations and/or scopes
- shell scripting
- stringing together a group of commands to perform tasks on the user interfaces of various operating systems
- short circuiting
- when HLL expressions that use the logical operators do not need the second operand evaluated for results to be known
- single inheritance
- methodology used by most modern OOP HLLs in which classes and objects can only inherit from one parent
- stack frame
- structure representing a function and its parts that is placed on the call stack
- stack overflow
- condition in which the call stack has run out of memory in which to expand
- starvation
- condition of a process when a process must wait to enter a critical section, but the other processes monopolize the section, and the waiting process does not get processor time
- state
- data that are remembered over time
- static linker
- produces an executable object file by completing its tasks prior to the program running
- string
- data type representing a sequence of characters
- strongly typed
- language in which a variable may only contain one of the language’s defined data types for its entire existence
- Structured Query Language (SQL)
- most widely used language to specify a query that a database system can process to store or retrieve data
- subclass
- child class in an inheritance relationship
- superclass
- parent class in an inheritance relationship
- syntax analysis
- front-end compilation process usually referred to as parsing or reading the code to make sure it conforms with the syntax rules of the language
- ternary operator
- acts on three operands
- thread of control
- thread the processor is controlling, which is actually executing at the time
- tokens
- front-end compilation product that are sequences of compiler recognizable atomic symbols which make it much easier for the next steps to recognize them
- top-tested loop
- when a condition for further loop iteration is set at the entrance to the code block
- truth table
- chart that shows what the resulting value would be given every combination of values of operands in an expression using a logical operator
- type cast
- operation that coerces an assignment of a possibly incompatible data type to a variable
- unary operator
- acts on one operand
- user interface (UI)
- point at which human users interact with a computer, website or application
- variable
- gives a name to a memory location that is used in any HLL to hold a value
- variable declaration
- consists of a statement which specifies the variable name and data type
- void
- a keyword in many HLLs that denotes a null value stored in a variable or that a function returns no value
- weakly typed
- when a variable may at different times hold values of any of the language data types
- writability
- measures how easily an HLL can be used to create and modify programs