Skip to main content
Engineering LibreTexts

4.5.0: Key Terms

  • Page ID
    118446
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \( \newcommand{\dsum}{\displaystyle\sum\limits} \)

    \( \newcommand{\dint}{\displaystyle\int\limits} \)

    \( \newcommand{\dlim}{\displaystyle\lim\limits} \)

    \( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)

    ( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\id}{\mathrm{id}}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\kernel}{\mathrm{null}\,}\)

    \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\)

    \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\)

    \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    \( \newcommand{\vectorA}[1]{\vec{#1}}      % arrow\)

    \( \newcommand{\vectorAt}[1]{\vec{\text{#1}}}      % arrow\)

    \( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vectorC}[1]{\textbf{#1}} \)

    \( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)

    \( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)

    \( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)

    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \(\newcommand{\longvect}{\overrightarrow}\)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)

    Key Terms

    abstract model
    technique that derives simpler high-level conceptual models for a computer while exploring the science of what new algorithms can or cannot do
    allocated memory
    memory region set aside to hold a value
    archive file
    .a
    file that contains a static library
    Arduino
    hardware platform intended for creating simple, low-cost hardware for educational or hobbyist purposes
    assembler
    program that translates assembly language source code into machine code
    assembly language
    low-level language in which every statement corresponds directly to a machine instruction
    BASIC
    early high-level programming language
    binary code
    program in the native format that is understood by a CPU, which is a long series of 0s and 1s
    C
    middle-level language that has been in wide use since the 1970s
    C++
    middle-level object-oriented language based upon C
    central processing unit (CPU)
    computer chip capable of executing machine code programs
    child thread
    thread that is started by the parent thread, and only runs for a limited period in a parallel section
    Church-Turing Thesis
    scientific theory stating that an algorithm can be converted from any reasonable computational model to another
    Clang
    open-source C compiler developed by the LLVM project
    code relocation
    merges separate code and data sections into single sections (one for code and one for data)
    compiler
    (also: interpreter) program that translates source code from a middle-level or high-level language into something a computer can read
    computational model
    system for defining what an algorithm does and how to run it
    concurrent programming
    situation where multiple programs or tasks are running at the same time, regardless of whether they are using multiple processors or sharing one processor
    core
    individual processor built into a CPU chip
    declarative programming
    paradigm in which code dictates a desired outcome without specifying how that outcome is achieved
    device driver
    piece of code that is responsible for connecting to a hardware component such as a video card or keyboard
    distributed computing
    specific form of parallel programming where processors are working together in parallel, but the processors are in multiple connected computers, not a single computer
    executable and linkable format (ELF)
    standard binary format for object code
    external reference
    symbol that is used in a module, but not defined in that module, so is expected to be defined in some other module
    firmware
    very low-level code that communicates directly with hardware, providing a convenient interface for other software
    freed memory
    memory that is given back to be reused when a value is no longer needed
    functional programming
    paradigm in which algorithms are written as mathematical functions
    GCC
    open-source C compiler developed by the GNU Project
    Git
    widely-used version control system
    GitHub
    website that allows free storage of public git repositories
    GOTO
    non-structured operation that instructs a computer to jump to an entirely different part of the program
    graphics processing unit (GPU)
    massively-parallel processor that supplements a CPU; GPUs were originally designed for rendering real-time graphics in video games
    hardware model
    design for a how a specific physical computer executes algorithms
    high-level programming language
    programming language that operates at a high level of abstraction, meaning that low-level details such as the management of memory are automated
    imperative programming
    paradigm in which the programmer writes a series of steps that must be followed in order
    instruction set architecture (ISA)
    type of hardware model that defines a list of operations that a CPU can execute
    integrated development environment (IDE)
    program with a graphical user interface that includes a text editor, compiler, and other tools, all in one application
    interpreter
    (also: compiler) program that translates source code from a middle-level or high-level language into something a computer can read
    invalid pointer
    pointer that does not hold a valid location
    kernel
    core part of an operating system that is responsible for managing and interfacing with hardware components
    Lambda calculus
    abstract computational model defined by Alonzo Church that inspired the functional programming paradigm
    level of abstraction
    degree to which a computational model, programming language, or piece of software relates to computer hardware
    library
    file that contains object code for functions and global variables that are intended to be reused
    linker
    program that performs linking
    linking
    process of collecting and combining various pieces of object code into a single program file that can be loaded into memory and executed
    Linux
    open-source operating system kernel that is Unix-compatible
    load time linking
    when dynamic linking happens at the same time a program executable is first run
    low-level programming language
    programming language that operates at a low level of abstraction, meaning that code is similar to machine code
    machine code
    sequence of binary digits (bits) that can be understood and executed directly by a computer
    memory leak
    occurs when some memory is allocated but never freed
    memory management
    process of allocating and freeing memory
    message passing
    parallel programming approach where separate processes communicate only by sending messages, not sharing memory
    Message Passing Interface (MPI)
    message-passing interface that was first developed in the 1990s
    middle-level programming language
    programming language that is somewhat abstracted above low-level, but not as much as a high-level programming language; allows direct hardware access
    modularity
    property of code that allows it to be divided into a small, reusable piece
    multicore
    CPU chip that contains more than one core
    object
    a program value that has both data, or variables, and procedures that work together to represent a specific human concept
    object-oriented programming
    paradigm in which code is organized into objects, where each object has both data and procedures
    OpenMP
    library for parallel programming in the SMP model
    operating system
    software that provides a platform for applications and manages hardware components
    operator
    fundamental programming operation that combines values
    parallel computer
    multiple-processor system that supports parallel programming
    parallel computing
    practice of making productive use of parallel computers
    parallel programming
    computer programming technique that provides for executing code in parallel on multiple processors
    parent thread
    thread that runs from the program beginning through the end, and starts and manages child threads
    pointer
    variable that holds the memory address of another variable and points to that variable
    procedural programming
    paradigm in which code is organized into procedures
    procedure
    function in the context of programming
    programming language paradigm
    philosophy and approach for organizing code
    programming model
    design for humans to read and write
    Random Access Machine
    abstract computational model used to analyze the efficiency of algorithms
    repository
    container for files and related information stored in a version control tool
    runtime linking
    when linking occurs after a program has already started running
    Rust
    a relatively new middle-level programming language created by the Mozilla Foundation in the 2010s
    segmentation fault
    occurs if the subscript is very far out of range
    semantic error
    when code compiles and runs, but does not behave as it should
    shared library
    library file that can be shared by multiple programs at the same time
    shared memory
    programming model in which processes/tasks share a common address space, which they read and write to asynchronously
    socket
    Internet connection between two computers
    source code
    text of a program written in a programming language
    static library
    simple kind of library that that copies the contents of object files into a single file called an “archive”
    structured programming
    paradigm in which control flow is always controlled with conditionals (“if”) or loops (“while”) and never GOTO
    symbol
    identifier for a function or global variable
    symbol resolution
    during the symbol resolution step, the linker associates each symbol reference with exactly one symbol definition
    symbol table
    array of structures in which each entry includes name, size, and location of symbol
    symmetric multiprocessor (SMP)
    model in which there are multiple parallel processors that are practically identical
    systems software
    programs that provide infrastructure and platforms that other programs rely upon
    thread
    light-weight parallel execution path that shares memory with other threads
    Unix
    operating system that has been used widely, primarily in servers and software development since the 1970s
    version control
    tools that are used to store and improve multiple versions of project files and support team collaboration, and the ability to revert to an earlier versions
    Visual C++
    proprietary-license C and C++ compiler developed by Microsoft

    This page titled 4.5.0: Key Terms is shared under a CC BY 4.0 license and was authored, remixed, and/or curated by OpenStax via source content that was edited to the style and standards of the LibreTexts platform.

    • Was this article helpful?