Glossary of Programming Terms

1GL (first-generation language)
See machine language.
2GL (second-generation language)
See assembly language.
3GL (third-generation language)
A third-generation programming language is a "high-level" programming language, such as PL/I, C, or Java. Typically, a compiler converts the statements of a specific high-level programming language into machine language. A 3GL language requires a considerable amount of programming knowledge.
4GL (fourth-generation language)
A fourth-generation programming language is designed to be closer to natural language than a 3GL language. Languages for accessing databases (e.g., SQL) are often described as 4GLs.
5GL (fifth-generation language)
A fifth-generation language is programming that uses a visual or graphical development interface to create source language that is usually compiled with a 3GL or 4GL language compiler. Microsoft, Borland, IBM, and other companies make 5GL visual programming products for developing applications in Java, for example. Visual programming allows you to easily envision object-oriented lass hierarchies and drag icons to assemble program components. Microbrew AppWare and IBM's VisualAge for Java are examples of 5GL "languages."
Algol
A high-level programming language designed around 1960. The first major language to stress modularity and other ideas of structured programming.
algorithm
A sequence of steps designed to solve a problem or execute a process. Technically, an algorithm must reach a result after a finite number of steps, thus ruling out brute force search methods for certain problems, though some might claim that brute force search was also a valid (generic) algorithm. The term is also used loosely for any sequence of actions (which may or may not terminate).
application
A software program specially designed for a particular task or the specific use of a software program. Single purpose programs are application programs. Graphics applications, for example, are designed to enable the user to manipulate data or images, or to create images from data or from a library of shapes. Other examples include payroll programs, inventory programs, CADD programs, and computer games.
applicative language
A programming language that performs all computations by applying a series of functions to values.
architecture
The basic design along which a computer has been constructed. Popular parallel architectures include processor arrays, bus-based multiprocessors (with caches of various sizes and structures) and disjoint memory multicomputers. See also Flynn's taxonomy. The term architecture may also be used to describe the characteristics of any complex system, e.g., software architecture or network architecture.
artificial intelligence assembler
An assembler is a program that takes basic computer instructions and converts them into a pattern of bits (binary digits) that the computer's processor can use to perform its basic operations. These instructions are known as assembly language. In the earliest computers, programmers wrote programs in machine code (machine language). Assembly languages or instruction sets were soon developed to speed up the programming process. Today, assembly programming is used only where very efficient control over processor operations is needed. Assembly language programming requires knowledge of a particular computer's (processor's) instruction set.
BASIC
BASIC stands for "Beginner's All-purpose Symbolic Instruction Code." BASIC is a high-level interpretive programming language developed in the mid-1960s and popularized since then by Microsoft. BASIC's English-like syntax has made it easier to learn than most other languages.
BNF
BNF stands for Backus-Naur Form and refers to context-free grammars. Grammars are a method of describing the syntax of programming languages.
C
A procedural (imperative) programming language, originally based on "B", designed by Dennis Ritchie. C is sometimes characterized as a low-level language because it includes features which allow direct interaction with the underlying computer. However, C has features commonly found in high-level languages. C and C++ are two of the most common programming languages used today.
C++
An object-oriented programming (OOP) language based on (or rather a superset of) C. In addition to the procedural features of C, C++ allows the programmer to use the key concepts of OOP which are abstraction, classes, objects, encapsulation, and inheritance.
CISC
Complicated instruction set computer; a computer that provides many powerful but complicated instructions. This term is also applied to software designs that give users a large number of of complex primative operations.
coding
The process of translating a solution to a problem from an algorithm in human language (e.g., English to) a programming language that a computer can understand.
compiler
A compiler is a special program that processes statements written in a particular programming language and turns them into machine language or "code" that a computer's processor uses. When executing (running), the compiler first parses (or analyzes) all of the language statements syntactically one after the other and then, in one or more successive stages or "passes", builds the output code, making sure that statements that refer to other statements are referenced correctly in the final code. Traditionally, the output of the compilation has been called object code or sometimes an object module. The object code is machine code that the processor can process or "execute" one instruction at a time. Every high-level programming language comes with a compiler. In effect, the compiler is the language, because it defines which instructions are acceptable.
debug
To test a computer program by giving it every conceivable input that a user could enter, and when the program behaves improperly, to locate and fix the lines of code causing the problem.
Eiffel
Eiffel is a "pure" object-oriented language. It was designed in 1985 by Bertrand Meyer and includes the programming language, methods, libraries, and development environments.
Flynn's Taxonomy
A classification system for computer architectures that has two measures: the number of instructions streams executing concurrently, and the number of data sets to which those instructions are being applied. The scheme was proposed by Flynn in 1966.
function
A function is a subroutine or other related program portion that completely expresses one idea or abstraction.
high-level language
A high-level language is a programming language such as JAVA, C, C++, FORTRAN, or Pascal that enables the programmer to create programs that are more or less independent of a particular type of computer. Such languages are considered high-level because they are closer to human languages (English-like) and further from machine languages.
instruction
The term instruction is often used to describe the most rudimentary programming commands. For example, a computer's instruction set is the list of all the basic commands in the computer's machine language.
interface
The method used for the function or module to communicate with the rest of the program. Also, something that connects two separate entities. For example, a user interface is the part of a program that connects the computer with a human operator (user).
interpreter
An interpreter is a program which translates source code instructions one at a time. Since an interpreter analyzes and executes each line of source code in succession, without looking at the entire program they can execute a program immediately. The writer of the interpreted program need not be concerned by low-level storage management considerations. An interpreted program is not as efficient as a compiled program. An interpreted program is usually easier to write than a program written for a compiler. Interpreted programs are ideal for small tasks and for "gluing together" a succession of compiled programs that are run from the interpreted program.
Java
Java is a object oriented, interpreted language from Sun Microsystems. It is designed as a portable, platform independent replacement for C/C++. It is often used to run applications in a web browser, as opposed to CGI-BIN scripts that run on the server.
machine language
The lowest level of programming languages. A programming language level which uses instructions and data that the processor is actually given to work on (which in conventional computers is a string of 0s and 1s). Machine languages are the only languages understood by computers. While easily understood by computers, machine languages are difficult for humans to use because they consist entirely of binary numbers. Every CPU has its own unique machine language. Programs must be rewritten to run on different types of computers.
MIMD
Multiple Instruction, Multiple Data; a category of Flynn's taxonomy in which many instruction streams are concurrently applied to multiple data sets. A MIMD architecture is one in which heterogeneous processes may execute at different rates.
MISD
Multiple Instruction, Single Data; a member of Flynn's taxonomy almost never used. This category has an ambiguous meaning. It refers to a computer which applies several instructions to each data item. The closest real implementation to this category is a vector computer with an instruction pipeline.
module
A module is a fragment of a program that is formally delimited in such a way that it may be modified and reused independently of the remainder of the program. A module is a collection of functions or data implementing one idea or concept. The most familiar example of a module is a procedure definition.
multiprogramming
The ability of a computer system to time share its (at least one) CPU with more than one program at the same time.
operation oriented language
A programming language which uses remote procedure calls as the principle means for interprocess communication and synchronization.
parsing
The process whereby a compiler analyzes the syntax of a program to establish the relationship among operators, operands, and other tokens of a program. Parsing does not involve any semantic analysis.
pipelining
Strategy of allowing more than one instruction to be in some stage of execution at the same time.
PL/I
Programming Language One, a high-level procedural programming language written for the multipurpose domain (e.g., arithmetic, scientific and business environments).
procedure oriented language
A programming language in which process communication and synchronization are accomplished through the use of of shared variables. Also called a procedural language.
program
A logically complete collection of modules working together to solve a problem. A program is like a recipe. It contains a list of ingredients (called variables) and a list of directions (called statements or instructions) that tell the computer what to do with the variables. The variables can represent numeric data, text, or graphical images.
programming language
A programming language is a vocabulary and set of grammatical rules for instructing a computer to perform specific tasks. Each language has a unique set of keywords (words that it understands) and a special syntax for organizing program instructions.
RISC
Reduced instruction set computer; a computer that provides only a few simple instructions but executes them extremely quickly. RISC machines typically rely on instruction prefetching and caching to achieve higher performance than CISC machines. The term is also applied to software designs that give users a small number of simple but efficient operations.
sequential computer
Also called a Von Neumann architecture computer. A sequential computer is a "conventional" computer in which only one processing element works on a problem at a given time.
SIMD
Single instruction, multiple data; a category of Flynn's taxonomy in which a single instruction stream is concurrently applied to multiple data sets. A SIMD architecture is one in which homogeneous processes synchronously execute the same instructions on their own data, or one in which an operation can be executed on vectors of fixed or varying size. See also array processor, processor array, vector processor.
SISD
Single instruction, single data; a category of Flynn's taxonomy in which a single instruction stream is serially applied to a single data set. Most uniprocessors are SISD machines.
software
A general term used for all types of programs used to manage a computer's functions. Software is essentially a set of instructions the computer used to perform a series of tasks.
SQL
Standard Query Language; a standard for adding data to, or recovering data from, databases.
Structured programming
A style of programming which makes the source code easier to read and debug. The program is broken up into units called modules, and the computer must be told about plans to use variables within the program at the beginning.
synchronization
The act of bringing two or more processes to known points in their execution at the same clock time. Explicit synchronization is not needed in SIMD programs (in which every processor either executes the same operation as every other or does nothing), but is often necessary in SPMD and MIMD programs. The time wasted by processes waiting for other processes to synchronize with them can be a major source of inefficiency in parallel programs.
syntax error
A line of code that a computer does not understand because the programmer did not word it correctly in the programming language.
Tcl
Tcl (Tool Command Language) is a simple scripting language for controlling and extending applications. Tcl provides generic programming facilities (e.g., variables and loops and procedures) that are useful for a variety of applications.
visual programming language
A programming language which provides programmers easy access to elements of a GUI such as windows, menus, and pushbuttons. Examples include Visual BASIC and Visual C++.
Von Neumann architecture
Used to describe any computer which does not employ concurrency or parallelism. Named after John Von Neumann (1903-1957) who is credited with the invention of the basic architecture of current sequential computers.

    Click on the button at left to return to the calling page.

 

There have been visitors since 11/26/2003

Added to the Web: August 21, 1999.
Last updated: August 21, 1999.
Web page design by Dan Solarek.

http://cset.sp.utoledo.edu/