• Kurs języka E - część 1

20.02.2005 13:26, autor artykułu: Wojciech Zatorski (Amiga Computer Studio)
odsłon: 3710, powiększ obrazki, wersja do wydruku,

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?

  • 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

Jak zainstalować?

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


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.

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.

Pragma2Module
Konwertuje pliki SAS/C pragma na moduły E.

ShowCache
Pokazuje jakie moduły znajdują się w pamięci (wgrane przez kompilator).

FlushCache
Usuwa z pamięci moduły (wgrane przez kompilator).

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.

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.

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

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?

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

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)

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?

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?

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


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.

 głosów: 3   
dodaj komentarz
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem