Action! (linguaggio di programmazione)
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 distribuito su cartuccia dalla Optimized Systems Software nel 1983. La sua sintassi è simile a quella dell'ALGOL 68.
Action! linguaggio di programmazione | |
---|---|
Autore | Optimized Systems Software |
Data di origine | 1983 |
Ultima versione | 3.6 |
Utilizzo | general-purpose |
Paradigmi | Programmazione strutturata |
Tipizzazione | Forte |
Influenzato da | ALGOL, Pascal, C, Ada |
Implementazione di riferimento | |
Licenza | Copyright 1994 Fine Tooned Engineering |
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.
Tipi di dati
modificaAction! ha 3 tipi di dati fondamentali, tutti numerici.
BYTE
modificaRappresentato 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 inizializza con il valore 21 BYTE leftMargin=82 ; dichiara la variabile leftmargin e la memorizza all'indirizzo 82
CARDinal
modificaRappresentato 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 virgola per dichiarare più variabili
INTeger
modificaRappresentato 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
Parole chiave
modificaUna 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 ! @
Esempio di codice
modificaIl 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
Bibliografia
modifica- (EN) Lights, Camera, Action!, in Hi-Res, vol. 1, n. 4, maggio/giugno 1984, p. 72.
- (EN) Action! (JPG), in ANALOG Computing, n. 16, Cherry Valley, ANALOG 400/800 Corp., febbraio 1984, p. 54, ISSN 0744-9917 . Trascrizione del testo, su cyberroach.com.
Voci correlate
modificaCollegamenti esterni
modifica- Action!, su retrobits.net. URL consultato il 22 gennaio 2010 (archiviato dall'url originale il 1º marzo 2012).
- ACTION!, su atariwiki.org.
- The ACTION! Archive, su joyfulcoder.net. URL consultato il 22 gennaio 2010 (archiviato dall'url originale il 15 luglio 2009).
- effectus, su gury.atari8.info.