abstract class definition
<programming> In object-oriented programming, a class
designed only as a parent from which sub-classes may be
derived, but which is not itself suitable for instantiation.
Often used to "abstract out" incomplete sets of features which
may then be shared by a group of sibling sub-classes which add
different variations of the missing pieces.
(1994-11-08)
Nearby terms:
ABSET « absolute path « absolute pathname « abstract class » abstract data type » abstract interpretation » abstraction
abstract data type definition
<programming> (ADT) A kind of data abstraction where a
type's internal form is hidden behind a set of access
functions. Values of the type are created and inspected only
by calls to the access functions. This allows the
implementation of the type to be changed without requiring any
changes outside the module in which it is defined.
Objects and ADTs are both forms of data abstraction, but
objects are not ADTs. Objects use procedural abstraction
(methods), not type abstraction.
A classic example of an ADT is a stack data type for which
functions might be provided to create an empty stack, to
push values onto a stack and to pop values from a stack.
Reynolds paper.
Cook paper "OOP vs ADTs".
(2003-07-03)
Nearby terms:
absolute path « absolute pathname « abstract class « abstract data type » abstract interpretation » abstraction » abstract machine
abstract interpretation definition
<theory> A partial execution of a program which gains
information about its semantics (e.g. control structure,
flow of information) without performing all the calculations.
Abstract interpretation is typically used by compilers to
analyse programs in order to decide whether certain
optimisations or transformations are applicable.
The objects manipulated by the program (typically values and
functions) are represented by points in some domain. Each
abstract domain point represents some set of real
("concrete") values.
For example, we may take the abstract points "+", "0" and "-"
to represent positive, zero and negative numbers and then
define an abstract version of the multiplication operator, *#,
which operates on abstract values:
*# | + 0 -
---|------
+ | + 0 -
0 | 0 0 0
- | - 0 +
An interpretation is "safe" if the result of the abstract
operation is a safe approximation to the abstraction of the
concrete result. The meaning of "a safe approximation"
depends on how we are using the results of the analysis.
If, in our example, we assume that smaller values are safer
then the "safety condition" for our interpretation (#) is
a# *# b# <= (a * b)#
where a# is the abstract version of a etc.
In general an interpretation is characterised by the domains
used to represent the basic types and the abstract values it
assigns to constants (where the constants of a language
include primitive functions such as *). The interpretation of
constructed types (such as user defined functions, sum types
and product types) and expressions can be derived
systematically from these basic domains and values.
A common use of abstract interpretation is strictness
analysis.
See also standard interpretation.
(1994-11-08)
Nearby terms:
absolute pathname « abstract class « abstract data type « abstract interpretation » abstraction » abstract machine » Abstract Machine Notation
abstraction definition
1. Generalisation; ignoring or hiding details to capture some
kind of commonality between different instances. Examples are
abstract data types (the representation details are hidden),
abstract syntax (the details of the concrete syntax are
ignored), abstract interpretation (details are ignored to
analyse specific properties).
2. <programming> Parameterisation, making something a function
of something else. Examples are lambda abstractions (making
a term into a function of some variable), higher-order
functions (parameters are functions), bracket abstraction
(making a term into a function of a variable).
Opposite of concretisation.
(1998-06-04)
Nearby terms:
abstract class « abstract data type « abstract interpretation « abstraction » abstract machine » Abstract Machine Notation » abstract syntax
abstract machine definition
1. <language> A processor design which is not intended to be
implemented as hardware, but which is the notional executor
of a particular intermediate language (abstract machine
language) used in a compiler or interpreter. An abstract
machine has an instruction set, a register set and a model
of memory. It may provide instructions which are closer to
the language being compiled than any physical computer or it
may be used to make the language implementation easier to
port to other platforms.
A virtual machine is an abstract machine for which an
interpreter exists.
Examples: ABC, Abstract Machine Notation, ALF, CAML,
F-code, FP/M, Hermes, LOWL,
Christmas, SDL, S-K reduction machine, SECD, Tbl,
Tcode, TL0, WAM.
2. <theory> A procedure for executing a set of instructions in
some formal language, possibly also taking in input data and
producing output. Such abstract machines are not intended to
be constructed as hardware but are used in thought
experiments about computability.
Examples: Finite State Machine, Turing Machine.
(1995-03-13)
Nearby terms:
abstract data type « abstract interpretation « abstraction « abstract machine » Abstract Machine Notation » abstract syntax » Abstract Syntax Notation 1
Abstract Machine Notation definition
<language> (AMN) A language for specifying abstract machines
in the B-Method, based on the mathematical theory of
Generalised Substitutions.
(1995-03-13)
Nearby terms:
abstract interpretation « abstraction « abstract machine « Abstract Machine Notation » abstract syntax » Abstract Syntax Notation 1 » abstract syntax tree
abstract syntax definition
<language, data> A representation of data (typically either a
message passing over a communications link or a program being
compiled) which is independent of machine-oriented structures
and encodings and also of the physical representation of the
data (called "concrete syntax" in the case of compilation or
"transfer syntax" in communications).
A compiler's internal representation of a program will
typically be specified by an abstract syntax in terms of
categories such as "statement", "expression" and "identifier".
This is independent of the source syntax (concrete syntax)
of the language being compiled (though it will often be very
similar). A parse tree is similar to an abstract syntax
tree but it will typically also contain features such as
parentheses which are syntactically significant but which are
implicit in the structure of the abstract syntax tree.
(1998-05-26)
Nearby terms:
abstraction « abstract machine « Abstract Machine Notation « abstract syntax » Abstract Syntax Notation 1 » abstract syntax tree » Abstract-Type and Scheme-Definition Language
Abstract Syntax Notation 1 definition
<language, standard, protocol> (ASN.1, X.208, X.680) An
ISO/ITU-T standard for transmitting structured data on
networks, originally defined in 1984 as part of CCITT
X.409 '84. ASN.1 moved to its own standard, X.208, in 1988
due to wide applicability. The substantially revised 1995
version is covered by the X.680 series.
ASN.1 defines the abstract syntax of information but does
not restrict the way the information is encoded. Various
ASN.1 encoding rules provide the transfer syntax (a
concrete representation) of the data values whose abstract
syntax is described in ASN.1. The standard ASN.1 encoding
rules include BER (Basic Encoding Rules - X.209), CER
(Canonical Encoding Rules), DER (Distinguished Encoding
Rules) and PER (Packed Encoding Rules).
ASN.1 together with specific ASN.1 encoding rules facilitates
the exchange of structured data especially between
application programs over networks by describing data
structures in a way that is independent of machine
architecture and implementation language.
OSI Application layer protocols such as X.400 MHS
electronic mail, X.500 directory services and SNMP use
ASN.1 to describe the PDUs they exchange.
Documents describing the ASN.1 notations: ITU-T Rec. X.680,
ISO 8824-1; ITU-T Rec. X.681, ISO 8824-2; ITU-T
Rec. X.682, ISO 8824-3; ITU-T Rec. X.683, ISO 8824-4
Documents describing the ASN.1 encoding rules: ITU-T
Rec. X.690, ISO 8825-1; ITU-T Rec. X.691, ISO 8825-2.
[M. Sample et al, "Implementing Efficient Encoders and
Decoders for Network Data Representations", IEEE Infocom 93
Proc, v.3, pp. 1143-1153, Mar 1993. Available from Logica,
UK].
See also snacc.
(2005-07-03)
Nearby terms:
abstract machine « Abstract Machine Notation « abstract syntax « Abstract Syntax Notation 1 » abstract syntax tree » Abstract-Type and Scheme-Definition Language » Abstract Windowing Toolkit
abstract syntax tree definition
<compiler> (AST) A data structure representing something which
has been parsed, often used as a compiler or interpreter's
internal representation of a program while it is being
optimised and from which code generation is performed. The
range of all possible such structures is described by the
abstract syntax.
(1994-11-08)
Nearby terms:
Abstract Machine Notation « abstract syntax « Abstract Syntax Notation 1 « abstract syntax tree » Abstract-Type and Scheme-Definition Language » Abstract Windowing Toolkit » Abstract Window Toolkit
Abstract-Type and Scheme-Definition Language definition
<language> (ASDL) A language developed as part of Esprit
project GRASPIN, as a basis for generating language-based
editors and environments. It combines an object-oriented
type system, syntax-directed translation schemes and a
target-language interface.
["ASDL - An Object-Oriented Specification Language for
Syntax-Directed Environments", M.L. Christ-Neumann et al,
European Software Eng Conf, Strasbourg, Sept 1987, pp.77-85].
(1996-02-19)
Nearby terms:
abstract syntax « Abstract Syntax Notation 1 « abstract syntax tree « Abstract-Type and Scheme-Definition Language » Abstract Windowing Toolkit » Abstract Window Toolkit » ABSYS
Abstract Windowing Toolkit definition
Abstract Window Toolkit
Nearby terms:
Abstract Syntax Notation 1 « abstract syntax tree « Abstract-Type and Scheme-Definition Language « Abstract Windowing Toolkit » Abstract Window Toolkit » ABSYS » AC2
Abstract Window Toolkit definition
<graphics> (AWT) Java's platform-independent windowing,
graphics, and user-interface toolkit. The AWT is part of
the Java Foundation Classes (JFC) - the standard API for
providing a graphical user interface (GUI) for a Java
program.
Compare: SWING.
["Java in a Nutshell", O'Reilly].
Home.
(2000-07-26)
Nearby terms:
abstract syntax tree « Abstract-Type and Scheme-Definition Language « Abstract Windowing Toolkit « Abstract Window Toolkit » ABSYS » AC2 » AC3
|