Apple

Változók és kifejezések, láthatósági kérdések

Változók deklarációja:

változónév : típus

pl: index : Integer

Egy programban használt nevek jelentése egy környezetre vonatkozóan vannak deklarálva, ez gondoskodik a definíciók értelmezéséhez szükséges információkról. Egy környezetet statikusnak nevezünk, ha az egyszer létrehozott adatai a környezet egész életén át változatlanul maradnak. Különben a környezet dinamikus.

Minden deklaráció statikus környezetben van értelmezve

Az Apple-ben összetett környezeteket lehet létrehozni.
A nevek, amelyek ezeken belül vannak használva korlátozva vannak a hatáskörben, kivéve egy másik környezetbe specifikusan importáltakat. Egy elnevezett környezet önálló egység. A deklarációk csak az ebben megadott, vagy importált definíciókat használják.
Hogy importáljunk néhány definíciót egy másik környezetből referencia deklarációt lehet megadni, hivatkozva egy környezet nevére és az importálandó típusok, konstansok, osztályok és környezetek nevére.

Van egy univerzális környezet, amelyről feltételezzük, hogy mindig tartalmazva van. Ez magában foglal olyan típusokat, mint az integer, float, bool, ascii és a primitív típuskonstrukciók egy halmazát.

Értékadás:

t := x;

A parancsnyelveknek egy különleges problémája az úgynevezett indexelt változó, vagy tömb egy elemének történő értékadás. Ez az ok, amely lehetetlenné tette a párhuzamos értékadás beépítését a programnyelvekbe. Hiszen például az (a[i],a[j]) := (x,y) utasítás értéke nem egyértelműen meghatározott abban az esetben, ha i=j. A szelektív értékadás összezavarta az értékadás fogalmát a számítógép memóriájában való tárolással. Az értékadás egy magasszintű meghatározása lehet egy változó értékének cseréje egy azonos típusú más értékre. Igy egy értékadás egy függvény típusú változónak az általa meghatározott függvény egy új letérképezését jelenti. Ezt figyelembe véve, egy szelektív értékadás, mely Pascal-ban a következő formájú :

x[i] := e

Apple-ben az egész x változóhoz történő hozzárendelésként írható :

x := x | i:e

ahol a kifejezés jobboldala a következőképpen olvasható :

"x képe, kivéve az i helyen, ahol legyen e". A meghatározás tisztább, és mivel a cél egy teljes változó, használata nem vezet felderíthetetlen félreértésekhez a többszörös értékadás definiciójában.

Mindezen okok miatt az Apple nyelv támogatja a szimultán értékadást

(pl.: (x, y) := (y, x) csere),

és indexelt változó(tömb) szelektív update-jét nem engedi meg.