Deep Blue C
From Atariki
Spis treści |
Ograniczenia
Jeden z nielicznych kompilatorów języka C na małe Atari. Jego składnia jest zbliżona do standardu ANSI C, z istotnymi ograniczeniami. Niedostępne są:
- struktury
- unie
- tablice wielowymiarowe
- liczby zmiennoprzecinkowe
- funkcje zwracające wartości typu innego niż int
- operator sizeof
- rzutowanie typów
Inne niestandardowe właściwości Deep Blue C:
- Ostatni człon (case lub default) klauzuli switch musi być zakończony jedną z instrukcji: break, continue lub return.
- Typ char jest zawsze bez znaku.
- Łańcuchy znakowe nie mogą być dzielone.
- Długość linii kodu źródłowego nie może przekraczać 79 znaków.
- Funkcja nie może mieć więcej niż 126 argumentów.
- Niedostępne są nawiasy klamrowe { i }, w zamian należy użyć sekwencji $( i $).
Możliwości
Środowisko Deep Blue C (DBC) zapewnia dostęp do następujących konstrukcji programowych [1]:
- Typy podstawowe: char, int, typ wskaźnikowy (pointer)
- Tablice jednowymiarowe
- Operatory jednoargumentowe: + - * & ++ -- ! $- (tylda)
- Operatory dwuargumentowe: + - * / % | ^ & == != < <= >= << >> <op>= && || ?: ,
- Słowa kluczowe: if, else, while, break, continue, return, for, do, switch, case, default
- Dyrektywy kompilatora: #define, #include
- Linker (konsolidator) z funkcją relokowania
- Stałe: szesnastkowe, ósemkowe, \ (backslash)
Biblioteka standardowa
Prawdziwie mocną stroną DBC są dołączone do środowiska biblioteki programistyczne. Zapewniają one niemal ten sam zestaw funkcji jak w Atari BASIC, oprócz zmiennych typu rzeczywistego. Poniżej przedstawiono podstawowe biblioteki dostępne podczas tworzenia programu [2]:
- AIO - biblioteka podstawowych funkcji wejścia/wyjścia. Praktycznie wymagana w każdym tworzonym programie
- DBC - biblioteka uruchomieniowa
- GRAPHICS - biblioteka graficzna. Tryby tekstowe i graficzne Atari oraz funkcje graficzne wzorowane na Atari Basic
- PMG - biblioteka grafiki grafiki Gracz-Pocisk (Player Missile Graphics)
- PRINTF - biblioteka obsługi konsoli
Użyteczny jest kod źródłowy ww. bibliotek znajdujący się razem z innymi plikami DBC.
Biblioteka funkcji matematycznych
Standardowy język C określa typ podstawowy float oraz zestaw funkcji dla obliczeń numerycznych. Próbą przybliżenia możliwości DBC do standardu jest biblioteka Mathlib autorstwa Franka Parisa. Zawiera ona się w dwóch plikach:
- MATHLIB.C - biblioteka funkcji podstawowych na liczbach zmiennoprzecinkowych, wykorzystująca pakiet matematyczny w ROM Atari
- TRIG.C - biblioteka funkcji trygonometrycznych
Szybkość działania
Kompilator DBC nie tworzy kodu maszynowego dla procesora 6502. Wynikiem jego działania jest kod pośredni (C-code), który jest następnie wykonywany przez interpretator kodu pośredniego [3]. Jest to głównym powodem niewielkiej szybkości działania kodu wykonywalnego tworzonego za pomocą DBC.
Dostępność
Podstawowy pakiet DBC jest do pobrania na stronie Atari Archives. Nie jest określony jawnie status tego pakietu, ale sądząc po sposobie działania ludzi z Atari Archives powinien mieć status publiczny. Na powyższej stronie udostępniono również kod źródłowy całego środowiska programistycznego. Pakiet funkcji matematycznych Mathlib jest niedostępny publicznie, powodem jest brak kontaktu z autorem tej biblioteki, Frankiem Parisem [4].