Skip to ContentGo to accessibility pageKeyboard shortcuts menu
OpenStax Logo

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
Citation/Attribution

This book may not be used in the training of large language models or otherwise be ingested into large language models or generative AI offerings without OpenStax's permission.

Want to cite, share, or modify this book? This book uses the Creative Commons Attribution License and you must attribute OpenStax.

Attribution information
  • If you are redistributing all or part of this book in a print format, then you must include on every physical page the following attribution:
    Access for free at https://openstax.org/books/introduction-computer-science/pages/1-introduction
  • If you are redistributing all or part of this book in a digital format, then you must include on every digital page view the following attribution:
    Access for free at https://openstax.org/books/introduction-computer-science/pages/1-introduction
Citation information

© Oct 29, 2024 OpenStax. Textbook content produced by OpenStax is licensed under a Creative Commons Attribution License . The OpenStax name, OpenStax logo, OpenStax book covers, OpenStax CNX name, and OpenStax CNX logo are not subject to the Creative Commons license and may not be reproduced without the prior and express written consent of Rice University.