Action!: Różnice pomiędzy wersjami
→Przykład kodu: link |
dr. meryt. |
||
| Linia 4: | Linia 4: | ||
Action! łączy w sobie cechy [[C]] i [[Pascal]]a, czyli wygodę programowania z całkiem szybkim kodem wynikowym. Składnia Action! była wzorowana na języku [http://en.wikipedia.org/wiki/ALGOL_68 ALGOL 68]. Niemałą zaletą Action! jest dość wygodny, pełnoekranowy edytor. W języku tym napisano sporo programów użytkowych (np. [[DiskRx]]) i gier, np. [[Problem Jasia]]. | Action! łączy w sobie cechy [[C]] i [[Pascal]]a, czyli wygodę programowania z całkiem szybkim kodem wynikowym. Składnia Action! była wzorowana na języku [http://en.wikipedia.org/wiki/ALGOL_68 ALGOL 68]. Niemałą zaletą Action! jest dość wygodny, pełnoekranowy edytor. W języku tym napisano sporo programów użytkowych (np. [[DiskRx]]) i gier, np. [[Problem Jasia]]. | ||
Oryginalna wersja języka występuje na [[cartridge]]'u, ale krążyła też niemal w pełni funkcjonalna wersja dyskowa. Ciekawostką jest spora biblioteka procedur krążąca w sieci, dzięki czemu Action! stał się bardzo rozbudowanym i elastycznym narzędziem pracy dla programistów. | Oryginalna wersja języka występuje na [[cartridge]]'u, ale krążyła też niemal w pełni funkcjonalna wersja dyskowa. Język na cartridge'u zajmował 16k - w dwóch bankach po 8k (oddzielnie edytor i monitor) - zajmującym te same adresy, co interpreter Atari BASIC, tj. $A000-$BFFF. | ||
Ciekawostką jest spora biblioteka procedur krążąca w sieci, dzięki czemu Action! stał się bardzo rozbudowanym i elastycznym narzędziem pracy dla programistów. | |||
Znane osobistości używające Action! to: [[Jakub Husak]], [[Gizmo Magic]]. | Znane osobistości używające Action! to: [[Jakub Husak]], [[Gizmo Magic]]. | ||
Wersja z 5 lut 2008, 04:09
Strukturalny, kompilowany język programowania dla ośmiobitowych Atari. Dzieło programisty OSS nazwiskiem Clinton Parker, sprzedawane od 1983 roku pod marką Action Computer Services. Właścicielem praw autorskich było kolejno OSS, ICD, a w końcu FTe.
Action! łączy w sobie cechy C i Pascala, czyli wygodę programowania z całkiem szybkim kodem wynikowym. Składnia Action! była wzorowana na języku ALGOL 68. Niemałą zaletą Action! jest dość wygodny, pełnoekranowy edytor. W języku tym napisano sporo programów użytkowych (np. DiskRx) i gier, np. Problem Jasia.
Oryginalna wersja języka występuje na cartridge'u, ale krążyła też niemal w pełni funkcjonalna wersja dyskowa. Język na cartridge'u zajmował 16k - w dwóch bankach po 8k (oddzielnie edytor i monitor) - zajmującym te same adresy, co interpreter Atari BASIC, tj. $A000-$BFFF.
Ciekawostką jest spora biblioteka procedur krążąca w sieci, dzięki czemu Action! stał się bardzo rozbudowanym i elastycznym narzędziem pracy dla programistów.
Znane osobistości używające Action! to: Jakub Husak, Gizmo Magic.
Typy danych
W Action! występują trzy typy danych numerycznych: BYTE, CARD i INT. BYTE to ośmiobitowa liczba całkowita bez znaku, CARD - 16-bitowa liczba całkowita bez znaku, INT - 16-bitowa liczba całkowita ze znakiem. Pozostałe typy to CHAR, ARRAY, POINTER i typy deklarowane przez użytkownika, np.
TYPE CORD=[CARD x,y] CORD point point.x=42 point.y=23
Lista słów kluczowych
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
Cechy języka
Program pisze się w edytorze, kompiluje natomiast w tzw. monitorze, który ma tez pewne funkcje ułatwiające debugging. Edytor jest pełnoekranowy, pole edycyjne można podzielić na dwa niezależne "okna". Możliwości edytora obejmują kopiowanie bloków, wyszukiwanie i zastępowanie tekstów itp.
Kompilator Action! jest jednoprzebiegowy, kod źrodłowy jest kompilowany z pamięci, co dodatnio wpływa na szybkość kompilatora, ujemnie natomiast na maksymalną wielkość programu.
Wszystkie obliczenia dokonywane są w trybie liczb całkowitych ze znakiem. Język nie przewiduje wstawek w asemblerze w postaci mnemoników, podprogramy maszynowe muszą być załączane w postaci tablic wypełnionych stałymi szesnastkowymi lub dziesiętnymi.
Z braku dynamicznego zarządzania pamięcią w Action! niemożliwa jest rekurencja.
Przykład kodu
Przykładowa procedura na sito Eratostenesa napisana w Action!:
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
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
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
Linki zewnętrzne
Ten artykuł to tylko zalążek. Możesz pomóc rozwojowi Atariki poprzez rozszerzenie go o więcej informacji.
