|
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.
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/
|
|