Declaration (computer programming)

Declaration (computer programming)

In programming languages, a declaration specifies the identifier, type, and other aspects of language elements such as variables and functions. It is used to announce the existence of the element to the compiler; this is important in many strongly-typed languages (such as C) that require variables and their types to be specified with a declaration before use.[1]

In the BCPL family languages such as C++ and Java, it can also specify the variable's dimensions to declare a scalar, array or matrix. In this family, "pure" declarations (announcing the existence and properties of the element, commonly called simply "declarations") and definitions (declarations that provide the actual implementation in the case of functions, and initialization in the case of variables) can be made independent of each other. Declarations are generally made in header files, which are meant to be included in other files that reference and use these declarations, but don't have access to the definition. If a definition type doesn't match the previous declaration for the same element, the situation generates a compiler error.

For variables, definitions assign values to an area of memory that was reserved during the declaration phase. For functions, definitions supply the function body. While a variable or function may be declared many times, it is typically defined once. Dynamic languages such as JavaScript or Python allow redefining of functions.

A declaration is often used in order to be able to access functions or variables defined in different source files, or in a library.

Here are some examples of declarations that are not definitions, in C:

extern char example1;
extern int example2;
void example3(void);

Here are some examples of definitions, again in C:

char example1;
int example2 = 5;
void example3(void)
{
  int x = 7;
}

Variables

In some programming languages an implicit declaration is provided the first time such a variable is encountered at compile time. In other languages such a usage is considered to be a fatal error, resulting in a diagnostic being issued. Some languages have started out with the implicit declaration behavior, but as they matured they provided an option to disable it (e.g. Perl's "use strict" or Visual Basic's "Option Explicit").

Examples of how various programming language implementations respond to undefined variables are given below. Each code example is followed by an error message (if any).

CLISP (GNU CLISP 2.35)

(setf y x)
*** - EVAL: variable X has no value

C# (.NET Framework)

static void Main()
{
  int y = x;
}
Undefined variable x

C (GNU GCC 3.4)

int main()
{
  int y = x;
  return 0;
}
foo.c: In function `main':
foo.c:2: error: `x' undeclared (first use in this function)
foo.c:2: error: (Each undeclared identifier is reported only once
foo.c:2: error: for each function it appears in.)

JavaScript (Mozilla Firefox 1.0)

  y = x
 Error: x is not defined
 Source File: file:///c:/temp/foo.js

Standard ML (Standard ML of New Jersey v110.55)

val y = x;

stdIn:1.9 Error: unbound variable or constructor: x

MUMPS

Set Y = X

<UNDEF>

Objective Caml 3.08

let y = x;;
Unbound value x

Perl 5.8

my $y = $x;

(no error)

use strict;
my $y = $x;
Global symbol "$x" requires explicit package name at foo.pl line 2.
Execution of foo.pl aborted due to compilation errors.

PHP 5

$y = $x;

(no error)

error_reporting(E_ALL);
$y = $x;

PHP Notice: Undefined variable: x in foo.php on line 3

Python 2.4

x = y
Traceback (most recent call last):
  File "foo.py", line 1, in ?
    x = y
NameError: name 'y' is not defined

Ruby 1.8

y = x
NameError: undefined local variable or method `x' for main:Object
from (irb):1

VBScript (WSH 5.6)

Dim y
y = x

(no error)

Option Explicit
 
Dim y
y = x
(3, 1) Microsoft VBScript runtime error: Variable is undefined: 'x'

See also

References

  1. ^ Mike Banahan. "2.5. Declaration of variables". http://publications.gbdirect.co.uk/c_book/: GBdirect. http://publications.gbdirect.co.uk/c_book/chapter2/variable_declaration.html. Retrieved 2011-06-08. "[A] declaration [...] introduces just the name and type of something but allocates no storage[...]." 

Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • computer programming language — Introduction       any of various languages for expressing a set of detailed instructions for a digital computer. Such instructions can be executed directly when they are in the computer manufacturer specific numerical form known as machine… …   Universalium

  • Ch (computer programming) — In computing, Ch (  /ˌsiːˈ …   Wikipedia

  • Declaration (computer science) — In programming languages, a declaration specifies the identifier, type, and other aspects of language elements such as variables and functions. It is used to announce the existence of the element to the compiler; this is important in many… …   Wikipedia

  • Declaration — may refer to: Declaration (computer programming), specifies the identifier, type, and other aspects of language elements Declaration (cricket), when the captain of a cricket team declares its innings closed Declaration (law), a type of relief… …   Wikipedia

  • Class (computer programming) — In object oriented programming, a class is a construct that is used as a blueprint to create instances of itself – referred to as class instances, class objects, instance objects or simply objects. A class defines constituent members which enable …   Wikipedia

  • Destructor (computer programming) — In object oriented programming, a destructor (sometimes shortened to dtor) is a method which is automatically invoked when the object is destroyed. Its main purpose is to clean up and to free the resources (which includes closing database… …   Wikipedia

  • Programming language — lists Alphabetical Categorical Chronological Generational A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that… …   Wikipedia

  • Computer program — A computer program (also software, or just a program) is a sequence of instructions written to perform a specified task with a computer.[1] A computer requires programs to function, typically executing the program s instructions in a central… …   Wikipedia

  • Comparison of programming languages (object-oriented programming) — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations …   Wikipedia

  • Constructor (object-oriented programming) — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”