VOBSAH           DalÓÉ           PŇedeÓlej
logo

  Amiga E - I. díl  

Lehce na úvod:
 
E je objektově orientovaný / procedurální / vyšší programovací jazyk ovlivněný zejména jazyky jako je C++, Ada, Lisp atd. Je to jazyk s volným formátem zápisu a jeho Amiga implementce je speciálně určena na programování systémových aplikací. Množství funkcí a schopností tohoto jazyka je skutečně velké.

Kompilátor je velmi rychlý - autor uvádí, že dokáže přeložit více než 20 000 řádek za minutu na 7-mi MHz Amize. Zabudovaný assembler a linker umožňuje velmi jednoduchou kompilaci i velkých programů.

A takto vypadá 'Hello World' v E:
 
/* nominováno na na nejnudnější příklad... */
 
PROC main()
WriteF('Hello, World!\n')
ENDPROC


Autor:
        Wouter van Oortmerssen
        Levendaal 87
        2311 JG Leiden
        HOLLAND


Používání kompilátoru:

Syntaxe kompilátoru (systém 2.04+):
 
SOURCE/A,REG=NUMREGALLOC/N/K,LARGE/S,SYM=SYMBOLHUNK/S,NOWARN/S,
QUIET/S,ASM/S,ERRLINE/S,ERRBYTE/S,SHOWBUF/S,ADDBUF/N/K,IGNORECACHE/S,
HOLD/S,WB/S,LINEDEBUG/S,OPTI/S,DEBUG/S,NILCHECK/S:

 
Pro systémy 1.2 to 2.03:
 
EC [-opts] <sourcefile>
 
Jako příklad zkompilujeme program 'HelloWorld.e'. Kompilátor vytvoří spustitelný soubor 'HelloWorld'.

10.ram:>   cd e:src
10.E:Src> ec helloworld
AMIGA E Compiler/Assembler/Linker/PP v3.1i registered (c) '91-95 Wouter
lexical analysing ...
parsing and compiling ...
no errors
 
10.E:Src> helloworld
Hello, World!
10.E:Src> list
HelloWorld.e  89 ----rwed Středa          17:37:00
helloworld 676 ----rwed Středa 17:37:00
2 files - 4 blocks used                
10.E:Src>

Poznámka: Kompilátor nesmí být používán jako residentní!

Jednotlivé argumenty jsou popsány v dokumentaci k Amiga E.  

A nyní už něco o vlastním jazyku:

Dnes vás seznámím s formátem zápisu programů v "éčku". K opravdovému programování se dostaneme až příště :-(.
 
Tabelátory, LF atd.
 
Zdrojové programy v AMIGA E jsou obyčejné ASCII texty, ve kterých konec řádky (<LF>) a středník (;) jsou oddělovači jednotlivých příkazů.

Příkazy, které mají mnoho argumentů, mohou být rozděleny na několik řádek, přičemž jednotlivé řádky se musí ukončit čárkou (nebo jiným lexikálním prvkem, který se normálně nesmí oběvit na konci řádku). Pak je následující znak konce řádku (<LF>) ignorován.

Jednotlivé lexikální elementy mohou být ve zdrojovém text navzájem odděleny jednou nebo více mezerami, tabulátory, atd.

Komentáře
 
Komentáře se mohou vkládat kdekoli ve zdrojovém souboru, kam mohou být normálně psány mezery. Začínají "/*" a končí "*/" a mohou být neomezeně vnořovány. To samé platí i pro jednořádkové komentáře, které začínají "->" a končí u prvního <LF>.
 
Příklad:
 
/* toto, je komentář */
-> a toto také.

Identifikátory a typy
 
Identifikátory jsou řetězce, kterými programátor označuje jednotlivé objekty - tzn. proměnné, klíčová slova nebo jména funkcí.
 
Identifikátor se může skládat z:

K rozlišování jsou důležité všechny znaky, ale kompilátor sleduje pouze první dva pro určení typu identifkátoru podle následujícího systému:
 
oba velké: první malý: první velký a druhý malý:  
    Všechny hodnoty v E jsou vypočítávány jako 32-bitové.  

Způsob zápisu různých hodnot

Desítková čísla (1)
Desítková hodnota je sekvence znaků "0" až "9". Může jí předcházet znaménko mínus "-" jako označení záporného čísla.
Příklady: 1, 100, -12, 1024
 
Hexadecimální čísla ($1)
Hexadecimální hodnota používá navíc ještě písmena "A" až "F" (nebo "a" až "f") a musí být uvozena znakem "$".
Příklady: $FC, $DFF180, -$ABCD
 
Binární čísla (%1)
Binární čísla začínají znakem "%" a používají pouze číslice "1" a "0" pro zadávání hodnot.
Příklady: %111, %1010100001, -%10101
 
Reálná čísla (1.0)
Reálná čísla se od normálních desítkových čísel pouze v tom, že obsahují "." (tečku) pro oddělení jejich dvou čístí (celé a desetiné). Pouze jedna z nich může být vynechána, nikoli obě dvě. Reálná čísla mají odlišnou interní 32-bitovou representaci (IEEE) od běžných celých čísel.
Příklady: 3.14159, .1 (=0.1), 1. (=1.0)
 
Znaky
  Znaky jsou krátké "řetězce" uzavřené mezi uvozovkami. Mohou obsahovat maximálně čtyři znaky. (Znak je v éčku representován jako 32-bitové číslo.)
Příklady: "a", "BlAh"
 
Řetězce ('bla')
Řetězce jsou jakékoli ASCII texty, uzavřené v apostrofech ('). Hodotou řetězce jako takového je ukazatel (pointer) na jeho první znak. Všechny řetězce jsou v E okončeny nulou (zero byte - nulový byte).
  Řetězce mohou obsahovat také zvláštní znaky uvozené zpětným lomítkem ("\"). Toto se používá pro znaky, které nemohou bý z nějakého důvodu zobrazeny, nebo pro znaky využívané řetězcovými formátovacími funkcemi jako jsou WriteF(), TextF() a StringF(), nebo Vprintf().
 
konec řádky (ASCII 10, odřádkování) apostrof ' (normálně používaný pro ohraničování řetězců)
\n
\a nebo ''    
\q uvozovky "
\e escape (ASCII 27)
\t tabelátor (ASCII 9)
\\ zpětné lomítko \
\0 zero byte - nula
\b carriage return (ASCII 13)
 
Při použití ve formátovacích funkcích:
 
\d           tisk decimálního čísla
\h           tisk hexadecimálního čísla
\s           tisk řetězce
\c           tisk znaku
\z           nastavení "fill byte" na znak'0' (např.: 0012)
\l           zarovnání vlevo
\r           zarovnání vpravo (poslední dva fungují jako přepínače)

 
Za kódy \d,\h a \s mohou následovat popisy tiskových polí:
 
[x] pole znaků o délce x (poč. znaků, který se bude tisknout vždy) (x,y) minimální (x) a maximální (y) počet znaků (pouze u řetězců)
 
Příklad: tisk hexadecimálního čísla na 8 pozic s doplněním nulami: WriteF('\z\h[8]\n', cislo)    Řetězec může přesahovat přez několik řádek spojíte-li je plusem "+".
Příklad:
'tohle je děsně dlouhej řetězec ' +
'rozdělenej na dvě řádky...'


A to je pro dnešek vše.

Čau...

E.N.I.F.          

__________________________________________
 
.
 
Další ve frontě:
 
KodeŇina   Instrukce procesorů 680xx II.,   Jak fakčí AParátnice
 

 
VokeCáVKy HarDWare warez WorkBenchoviny DeMa Gfx&Muzika PaŇBY VokecÁvky II
Vokecávky Hardware Warez WBoviny Dema Gfx&Muz Pařby Vokecávky 2