Action!

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 07:17, 29 gru 2006
KMK (Dyskusja | wkład)

← Previous diff
Wersja z dnia 08:10, 29 gru 2006
KMK (Dyskusja | wkład)
(przepisałem z en.wiki)
Next diff →
Linia 1: Linia 1:
{{grafr|action.gif}} {{grafr|action.gif}}
-Strukturalny, kompilowany język programowania dla ośmiobitowych Atari. Dzieło firmy Action Computer Systems. Język łączy w sobie cechy [[C]] i [[Pascal]]a, czyli wygodę programowania z całkiem szybkim kodem wynikowym. 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]].+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 [[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. 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]].
 +
 +== 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.
 +
 +<pre>
 +TYPE CORD=[CARD x,y]
 + CORD point
 + point.x=42
 + point.y=23
 +</pre>
 +
 +== 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 asemblerzez w postaci mnemonikół, podprogramy maszynowe musza być załączane w postaci tablicy wypełnionych stałymi szesnastkowymi.
 +
 +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!:
 +
 +<pre>
 + 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
 +</pre>
 +
== Linki zewnętrzne == == Linki zewnętrzne ==
* [http://www.cyberroach.com/analog/an16/action.htm Oficjalny opis języka] * [http://www.cyberroach.com/analog/an16/action.htm Oficjalny opis języka]

Wersja z dnia 08:10, 29 gru 2006

Grafika:action.gif

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. 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.

Spis treści

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 asemblerzez w postaci mnemonikół, podprogramy maszynowe musza być załączane w postaci tablicy wypełnionych stałymi szesnastkowymi.

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.

Personal tools