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