25853677	, to support arbitrary array sections), and other metadata. An association operator", codice_143 is used to associate a codice_129 to a variable which has a codice_145 attribute. The Fortran-90 codice_146 statement may also be used to associate a pointer to a block of memory. For example, the following code might be used to define and create a linked list structure: type real_list_t end type type (real_list_t), target :: my_real_list type (real_list_t), pointer :: real_list_temp real_list_temp => my_real_list do end do Fortran-2003 adds support for procedure pointers. Also, as part of the "C Interoperability" feature, Fortran-2003 supports intrinsic functions for converting C-style  pointers into Fortran pointers and back. Go. Go has pointers. Its declaration syntax is equivalent to that of C, but written the other way around, ending with the type. Unlike C, Go has garbage collection, and disallows pointer arithmetic. Reference types, like in C++, do not exist. Some built-in types, like maps and channels, are boxed (i.e. internally they are pointers to mutable structures), and are initialized using the codice_147 function. In an approach to unified syntax between pointers and non-pointers, the arrow (codice_148) operator has been dropped: the dot operator on a pointer refers to the field  or method of the dereferenced object. This, however, only works with 1 level of indirection. Java. There is no explicit representation of pointers in Java. Instead, more complex data structures like objects and arrays are implemented using references. The language does not provide any explicit pointer manipulation operators. It is still possible for code to attempt to dereference a null reference (null pointer), however, which results in a run-time exception being thrown. The space occupied by unreferenced memory objects is recovered automatically by garbage collection at run-time. Modula-2. Pointers are implemented very much as in Pascal, as are  codice_149 parameters in procedure calls. Modula-2 is even more strongly typed than Pascal, with fewer ways to escape the type system. Some of the variants of Modula-2 (such as Modula-3) include garbage collection. Oberon. Much as with Modula-2, pointers are available. There are still fewer ways to evade the type system and so Oberon and its variants are still safer with respect to pointers than Modula-2 or its variants. As with Modula-3, garbage collection is a part of the language specification. Pascal. Unlike many languages that feature pointers, standard ISO Pascal only allows pointers to reference dynamically created variables that  are anonymous and does not allow them to reference standard static or local variables. It does not have pointer arithmetic. Pointers also must have an associated type and a pointer to one type is not compatible with a pointer to another type (e.g. a pointer to a char is not compatible with a pointer to an integer). This helps eliminate the type security issues inherent with other pointer implementations, particularly those used for PL/I or C. It also removes some risks caused by dangling pointers, but the ability to dynamically let go of referenced space by using the codice_150  standard procedure (which has the same effect as the codice_151 library function found in C) means that the risk of dangling pointers has not been entirely eliminated. However, in some commercial and open source Pascal (or derivatives) compiler implementations —like Free Pascal, Turbo Pascal or the Object Pascal in Embarcadero Delphi— a pointer is allowed to reference standard static or local variables and can be cast from one pointer type to another. Moreover, pointer arithmetic is unrestricted: adding or subtracting from a pointer moves it by that number of bytes in either direction, but using the codice_152 or codice_153 standard  procedures with it moves the pointer by the size of the data type it is "declared" to point to. An untyped pointer is also provided under the name codice_154, which is compatible with other pointer types. Perl. The Perl programming language supports pointers, although rarely used, in the form of the pack and unpack functions. These are intended only for simple interactions with compiled OS libraries. In all other cases, Perl uses references, which are typed and do not allow any form of pointer arithmetic. They are used to construct complex data structures. Pointer (computer programming) In computer science, a