Sigil (computer Programming) Article Index for
Sigil
Website Links For
Sigil
 

Information About

Sigil (computer Programming)





HISTORICAL CONTEXT


The use of sigils was popularized by the BASIC Programming Language . The best known example of a sigil in BASIC is the Dollar Sign (“$”) appended to the names of all String s. Many BASIC dialects use other sigils to denote Integer s and Floating Point Number s, and sometimes other types as well.

Larry Wall adopted shell scripting’s use of sigils for his popular Scripting Language Perl . However, as Perl is a Weakly Typed language, the sigils specify not fine-grained data types like strings and integers, but general categories such as Scalars (using a prepended “$”), arrays (using a “@”), Hashes (using a “%”), and Subroutine s (using a “&”). Perl 6 introduces secondary sigils, or twigils, which are used to indicate the scope of variables. Prominent examples of twigils in Perl 6 include “^”, used with self-declared formal parameters (“placeholder variables”), and “.”, used with object attribute accessors (i.e., instance variables).


LANGUAGE COMPARISON


In various Unix-related contexts, such as Shell Scripting and Makefiles , the "$" sigil was used to access the contents of a variable.

In the PHP language, which was partly inspired by Perl, “$” precedes any Variable name. Names not prepended by this are considered Constant s.

In Ruby , ordinary variables lack sigils, but “$” is prefixed to Global Variable s, “@” is prefixed to Instance Variable s, and “@@” is prefixed to Class Variable s (the second “@” cannot be considered a twigil, so “@@” is just a longer sigil).

In Transact-SQL , “@” precedes a local variable or parameter name. System variables (known as global variables) are distinguished by a “@@” prefix.

In Fortran , all variables starting with the letters I, J, K, L, M and N are Integers although Fortran refers to this as "implicit typing". (This is the source of the long tradition of using "i", "j", "k" etc as the loop indexes of " For Loop s" in many programming languages—few of which have implicit typing).

In MIRC Script , identifiers have a $ sigil, while all variables have a % prefixed (regardless of local or global variables or data type). Binary variables are prefixed by a &.


HUNGARIAN NOTATION


Related to sigils is Hungarian Notation , a convention for variable naming that specifies variable type by attaching certain alphabetic prefixes to the variable name. Unlike sigils, however, Hungarian notation provides no information to the compiler; as such, explicit types must be redundantly given for the variables and the prefixes are not enforced, making them more prone to omission and misuse.


SEE ALSO