Action!: Różnice pomiędzy wersjami

Z Atariki
Przejdź do nawigacji Przejdź do wyszukiwania
Nie podano opisu zmian
przepisałem z en.wiki
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 29 gru 2006, 10:10

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.

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.