Kurs języka E - część 1

Transkrypt

Kurs języka E - część 1
Kurs języka E - część 1
Wojciech Zatorski (Amiga Computer Studio)
(c) Polski Portal Amigowy (www.ppa.pl)
Mam nadzieje, że ten artykuł zachęci Was do nauki języka AmigaE. Jest to język, którego można bardzo łatwo się
nauczyć, wystarczy tylko chcieć...
Dlaczego E?
.p
Jak zainstalować?
l
jest prosty do nauczenia się w porównaniu do innych języków generowany kod jest całkowicie zgodny z systemem
jest całkowicie darmowy ma bardzo małe wymagania (od A500 wzwyż) umożliwia stosowanie programowania
zorientowanego obiektowo
w
.p
pa
Aby zainstalować AmigaE, należy najpierw rozpakować archiwum z jego zawartością, stworzyć katalog np. AmigaE i
przegrać całe archiwum. Następnie należy stworzyć plik z przypisami np. niech to będze plik o nazwie Start: Assign
AmigaE: {miejsce gdzie się znajduje cały pakiet} Assign Src: AmigaE:Src Assign EMODULES: AmigaE:Modules Assign
Rexx: AmigaE:Rexx Assign Docs: AmigaE:Docs Assign Bin: AmigaE:Bin Assign Tools: AmigaE:tools
sys:system/rexxMast ; Uruchom Arexx-a C:CEd
; Uruchom Ceda lub wpisz inny ulubiony przez ciebie edytor tekstu
Ustaw flagę pliku Start na: SRWED. Następnie albo dopisz do menu użytkownika w Opusie 5 lub w ToolsDeamonie
menu z tekstem np. AmigaE i dostępem do tego pliku lub dorób ikonkę...
Teraz najważniejsza część instalacji czyli łatwe kompilowanie.
Przykład dla CED-a:
Tworzymy plik w którym znajdzie się program w Arexx, może on wyglądać tak: /*
Ced->Rexx->Amiga_E
3.1a by Wzp
Version 1.0 1996.05.16 */ ADDRESS 'rexx_ced' OPTIONS RESULTS STATUS 19 SAY
'Compile Start' SAY 'Compiling : "'result'"' ADDRESS COMMAND 'bin:ec "'result'"' ADDRESS 'rexx_ced' SAY 'Compile
Finish' exit 0
w
w
Zapisujemy go np. pod nazwą : ecompilev01
Z menu CED-a wybieramy: Instaluj komendę DOS-u/Arexx-a w Numer Polecenia wybieramy najbardziej nam pasujący
Fxx (1-10) następnie wprowadź komendę DOS-u wpisujemy dostęp do naszego stworzonego pliku ecompilev01 i
zapisujemy konfigurację.
I to już wszystko... Mamy zainstalowany i w pełni działający kompilator E...
Skąd zdobyć?
Cały pakiet (archiwum) można znaleźć na głównej stronie autora E, na stronach o tym języku po polsku lub na
Aminecie oraz prawdopodobnie na kompaktach ACS.
Co znajduje się w archiwum?
ShowModule
Programik pokazuje co znajduje się w danym module, np. "showmodule emodules:asl", spowoduje
wyświetlenie opisu biblioteki asl.library.
Strona 1
Kurs języka E - część 1
Wojciech Zatorski (Amiga Computer Studio)
(c) Polski Portal Amigowy (www.ppa.pl)
ShowHunk
Pokazuje budowę wszystkich wykonywalnych plików oraz objectów (".o").
IConvert
Konwertuje pliki z końcówką ".i" (includes'y asemblera) na moduły E.
w
.p
pa
FlushCache
Usuwa z pamięci moduły (wgrane przez kompilator).
.p
ShowCache
Pokazuje jakie moduły znajdują się w pamięci (wgrane przez kompilator).
l
Pragma2Module
Konwertuje pliki SAS/C pragma na moduły E.
O2M
Przerabia pliki nagrane jako "object", np. przy użyciu AsmOne na moduły E.
EBuild
Jest klonem "Make" z C. I działa tak samo.
EDBG
Debugger, aby go użyć musisz skompilować kod źródłowy z parametrem DEBUG.
EC
Kompilator/Asembler/PreProcessor/Linker
Dokładny opis wszystkich tych programów w kolejnych odcinkach.
w
Jakie dodatkowe opcje oferuje program EC?
LARGE
kompilowanie dużych kodów źródłowych, np. dodasz do kodu źródłowego obrazek 1MB i już musisz użyć tej opcji.
w
ASM
E staje się zwykłym asembler MC68k.
NOWARN
Kompilator nie daje żadnych ostrzeżeń typu: użyłeś a=1, a powinno być a:=1
DEBUG
Dodaje do kodu wynikowego, kod źródłowy dla Debuggera
QUIET
Jeśli nie ma błędów lub ostrzeżeń EC nie wypisze nic...
Strona 2
Kurs języka E - część 1
Wojciech Zatorski (Amiga Computer Studio)
(c) Polski Portal Amigowy (www.ppa.pl)
Na zachętę możemy napisać bardzo prosty programik: /* Hello World in E!! */ PROC main() WriteF('Hello, World!n')
ENDPROC
Po jego skompilowaniu i uruchomieniu na naszym ekranie monitorka powinien ukazać się napis: Hello, World!
O co chodzi w programiku?
w
.p
pa
.p
l
Na początku jest komentarz, czyli */ (początek_komentarza) */ (koniec_komentarza). Linie komentarza są ignorowane
przez kompilator. Następna linijka to procedura PROC (amos/pascal - procedure) main(), jest to procedurka, która musi
wystąpić w każdym programie jaki napiszesz w tym języku. To jest właśnie miejsce z którego następuje uruchomienie
programu. Kolejna linijka to komenda WriteF (amos - Print; pascal - Write), powoduje ona wyświetlenie na ekranie
tekstu. Ostatna linijka zawiera komendę ENDPROC, która musi wystąpić zawsze na końcu danej procedury, czyli jeśli
użyjesz PROC to musisz użyć również ENDPROC. Dokładnym omówieniem tych komend zajmiemy się w następnym
odcinku.
Liczby, cyfereczki, teksty w E
Dziesiętne - Decimal
Wartości dziesiętne składają się za znaków "0" .. "9", mogą być poprzedzone minusem (czyli być
liczbami ujemnymi). Np. 1,100,-12,1024
Szesnastkowe - Hexadecimal
W systemie szesnastkowym wartości składają się ze znaków : "0" .. "9" i dalej z liter
"A" .. "F" (lub "a" .. "f"), są poprzedzone znakiem "$". Np. $FC,
$DFF190, -$A43
Binarne - Binary
Wartość liczb binarnych zaczyna się zawsze znakiem "%" i używa się tylko cyfr "1" i
"0" (to chyba oczywiste?) Np. %001100, %11
w
Zmiennoprzecinkowe - Float
W zapisie, liczby zmiennoprzecinkowe różnią się od normalnych liczb dziesiętnych tym, że mają "." (znak
kropki) do seperacji ich dwóch części (na matematyce to chyba było, no nie?). Jedna z tych części może być ominięta
(.1;2.) ale nie obie!. Wykorzystywanie ich różni się od "zwyczajnych" liczb, o tym będzie osobny odcinek. Np. 3.14159, .1
(=0.1), 1. (=1.0)
w
Tekstowe - String
String składa się ze znaków ASCII, zaczyna się i kończy znakiem "'". Wartość stringu jest wskaźnikiem do
pierwszego znaku w stringu. Wszystkie stringi kończą sie w E bajtem zero, np. $35,$37,$35,$00 Np. 'Bla', 'Ala ma kota?'
Znaczki jakie mogą wystąpić w Stringu: n - skok do następnej linii (enter) a lub '' - apostrofa q - cudzysłów e - escape
(ascii 27) t - tab (ascii 9) \ - backslash, łamana w drugą stronę
- bajt zero, wszystkie STRINGi kończą się tym (nie
musisz tego dodawać) b - powrót na początek lini d - wyświetl dziesiętną liczbę, np. WriteF('Ala ma d lat',21) h wyświetl szesnastkową liczbę, np. WriteF('Ala ma h lat', $15) s - wyświetl tekst, np. WriteF('Ala ma s lat', '21') c wyświetl znak l - formatuj do lewej r - formatuj do prawej
Skąd zdobyć modules'y i inne programiki?
Strona 3
Kurs języka E - część 1
Wojciech Zatorski (Amiga Computer Studio)
(c) Polski Portal Amigowy (www.ppa.pl)
Większość modułów znajdziecie na tej stronie lub na kompaktach np. ACS. Jeśli zaś chodzi o programy z kodami
źródłowymi to najlepiej skorzystać z Aminetu (lub kompaktów z serii Aminet). Niezbędnę będą też autodoc'i np. można
je znaleźć na kompakcie AMIGA DEVELOPER CD.
A jak skorzystać z modułów i co to jest?
.p
l
Wystarczy użyć do tego polecenia: MODULE {nazwa modułu} Polecenie wgrywa moduł do pamięci, moduł jest to
binarny plik zawierający informacje o bibliotekach, stałych i czasami funkcjach. Użycie modułów pozwala na używanie
np. funkcji/bibliotek nieznanych kompilatorowi. Oto przykładzik: MODULE 'Asl', 'libraries/Asl' PROC main() DEF
req:PTR TO filerequester IF aslbase:=OpenLibrary('asl.library',37) IF req:=AllocFileRequest()
IF RequestFile(req)
THEN WriteF('File: "s" in "s"n',req.file,req.drawer)
FreeFileRequest(req) ENDIF CloseLibrary(aslbase) ENDIF
ENDPROC
w
w
w
.p
pa
Po uruchomieniu tego programiku na ekranie powinien pojawić się requester wyboru pliku. W module 'asl' zawarty jest
opis biblioteki asl, a w module 'libraries/asl' znajduje się opis struktury filerequester.
Strona 4

Podobne dokumenty