Deep Blue C

From Atariki

Revision as of 11:12, 30 gru 2008; view current revision
←Older revision | Newer revision→
Jump to: navigation, search

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.

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 [1]:

  • 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 [2]:

  • 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 [1]. 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 [3].

Materiały źródłowe:

Personal tools