Action!

Da Wikipedia, l'enciclopedia libera.
Vai a: navigazione, cerca
Action!
Sviluppatore Optimized Systems Software
Ultima versione 3.6 (1983)
S.O.
Genere Linguaggio di programmazione
Licenza Copyright 1994 Fine Tooned Engineering
(Licenza chiusa)
Sito web

L' Action! è un linguaggio di programmazione per gli home computer della Famiglia Atari 8-bit. Integra un editor, un debugger ed un compilatore per il processore MOS 6502. L' Action! fu sviluppato da Clinton Parker e rilasciato su cartuccia dalla Optimized Systems Software nel 1983. La sua sintassi è simile a quella dell'ALGOL 68.

L' Action! era un linguaggio prestante che permetteva la scrittura di videogiochi e di demo grafiche in un linguaggio di alto livello senza l'uso di codice scritto in linguaggio Assembly.

Era disponibile anche una libreria separata di funzioni chiamata Action! Toolkit. L' Action! fu utilizzato per creare almeno due prodotti commerciali: La suite di produttività Homepak ed il programma Games Computers Play. Del linguaggio non ne fu mai fatto un porting per altri sistemi.

Indice

[modifica] Tipi di dati

Action! ha 3 tipi di dati fondamentali, tutti numerici.

[modifica] BYTE

Rappresentato internamente come un intero a 8 bit privo di segno. I valori vanno da 0 a 255.

 BYTE age=[21]      ; dichiara la variabile age e la inzializza con il valore 21
 BYTE leftMargin=82 ; dichiara la variabile leftmargin e la memorizza all'indirizzo 82

[modifica] CARDinal

Rappresentato come un intero a 16 bit privo di segno. Valori da 0 a 65535.

 CARD population=$600             ; dichiara la variabile e la memorizza agli indirizzi 1536 e 1537
 CARD prevYear, curYear, nextYear ; si utilizza la irgola per dichiarare più variabili

[modifica] INTeger

Rappresentato con un intero a 16 bit con segno. Valor da -32768 a 32767.

 INT veryCold = [-10]
 INT profitsQ1, profitsQ2,  ; la dichiarazione di più variabili può spaziare su 
     profitsQ3, profitsQ4   ; più linee di codice


Action! ha anche i tipi di dato ARRAY, POINTER ed i tipi di dato definiti dall'utente (user-defined TYPEs). Non sono presenti tipi di dati floating point.

Un esempio di tipo di dato definito dall'utente:

 TYPE CORD=[CARD x,y]
 CORD point
 point.x=42
 point.y=23


[modifica] Parole chiave

Una parola chiave o keyword è ogni stringa o simbolo che il compilatore ACTION! riconosce come speciale. Può essere un operatore, un nome di tipo di dato, uno statement oppure una direttiva di compilazione.

 AND       FI         OR         UNTIL    =     (
 ARRAY     FOR        POINTER    WHILE    <>    )
 BYTE      FUNC       PROC       XOR      #     .
 CARD      IF         RETURN     +        >     [
 CHAR      INCLUDE    RSH        -        >=    ]
 DEFINE    INT        SET        *        <     "
 DO        LSH        STEP       /        <=    '
 ELSE      MOD        THEN       &        $     ;
 ELSEIF    MODULE     TO         %        ^
 EXIT      OD         TYPE       !        @


[modifica] Esempio di codice

Il seguente esempio rappresenta il codice dell'algoritmo del Crivello di Eratostene scritto in Action!. Per aumentare le prestazioni viene disabilitato il coprocessore grafico ANTIC.

BYTE RTCLOK=20, ; addr of sys timer
     SDMCTL=559 ; DMA control

BYTE ARRAY FLAGS(8190)

CARD COUNT,I,K,PRIME,TIME

PROC SIEVE()

  SDMCTL=0 ; shut off Antic
  RTCLOK=0 ; only one timer needed

  COUNT=0         ; init count
  FOR I=0 TO 8190 ; and flags
    DO
    FLAGS(I)='T ; "'T" is a compiler-provided constant for True
    OD

  FOR I=0 TO 8190 ; and flags
    DO
    IF FLAGS(I)='T THEN
      PRIME=I+I+3
      K=I+PRIME
      WHILE K<=8190
        DO
        FLAGS(K)='F ; "'F" is a compiler-provided constant for False
        K==+PRIME
        OD
      COUNT==+1
    FI
    OD
  TIME=RTCLOK ; get timer reading
  SDMCTL=34   ; restore screen

  PRINTF("%E %U PRIMES IN",COUNT)
  PRINTF("%E %U JIFFIES",TIME)
RETURN


[modifica] Voci correlate

[modifica] Collegamenti esterni

informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica
Strumenti personali
Namespace

Varianti
Azioni
Navigazione
Comunità
Stampa/esporta
Strumenti
Altre lingue