M++ Compiler 1.5 ALFA. Autor: Michał Michzimny Zimniewicz

Podobne dokumenty
1 Podstawy c++ w pigułce.

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Wiersz poleceń Windows

1 Podstawy c++ w pigułce.

Programowanie w języku Python. Grażyna Koba

Przedmiot : Programowanie w języku wewnętrznym. Ćwiczenie nr 4

Przedrostkowa i przyrostkowa inkrementacja i dekrementacja

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Metody numeryczne Laboratorium 2

Odczyt zegara ze sterownika do panelu serii TIU z możliwością korekty ustawień zegara w sterowniku

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Dodatki. Dodatek A Octave. Język maszyn

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

imei Instytut Metrologii, Elektroniki i Informatyki

lekcja 8a Gry komputerowe MasterMind

DOS Podstawowe komendy Przygotowanie dyskietki do pracy Praca z katalogami w systemie DOS Operacje kopiowania

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

P R OGRA M OW A N I E KOMPUTERÓW Ćwiczenia laboratoryjne

Programowanie strukturalne i obiektowe

Informatyka, Ćwiczenie Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

Wstęp do programowania. Wykład 1

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

1 Powtórzenie wiadomości

INSTRUKCJA INSTALACJI I URUCHOMIENIA PROGRAMÓW FINKA DOS W SYSTEMACH 64 bit

Notepad++ / PuTTY. Interaktywne środowisko programowania w języku ForthLogic. Wersja dokumentu P.1. Wersja dokumentu NP1.

Metodyki i Techniki Programowania MECHANIZM POWSTAWANIA PROGRAMU W JĘZYKU C PODSTAWOWE POJĘCIA

Utworzenie pliku. Dowiesz się:

Autor: dr inż. Katarzyna Rudnik

1 Przygotował: mgr inż. Maciej Lasota

TEMAT : System operacyjny MS DOS pliki wsadowe

CoDeSys 3 programowanie w języku CFC

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Systemy operacyjne Laboratorium. Pliki wsadowe Windows (część 2)

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada

Dlaczego stosujemy edytory tekstu?

PIERWSZE URUCHOMIENIE PROGRAMU ITNC PROGRAMMING STATION

Zakład Systemów Rozproszonych

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Podstawy tworzenia prezentacji w programie Microsoft PowerPoint 2007

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Część XV C++ Ćwiczenie 1

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki

Podstawy programowania skrót z wykładów:

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Instrukcja obsługi. Generatora CSV

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Windows 10 - Jak uruchomić system w trybie

INSTRUKCJA OBSŁUGI. Program ProCELL. Wersja: 1.15

Pascal - wprowadzenie

Programowanie w języku C++ Grażyna Koba

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Powtórka algorytmów. Wprowadzenie do języka Java.

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Klawiatura. Klawisze specjalne. Klawisze specjalne. klawisze funkcyjne. Klawisze. klawisze numeryczne. sterowania kursorem. klawisze alfanumeryczne

Elementy języków programowania

Powtórka algorytmów. Wprowadzenie do języka Java.

Niektóre katalogi są standardowymi katalogami zarezerwowanymi do użytku przez system. Znaczenie wybranych katalogów systemowych jest następujące:

Windows XP Wiersz polecenia

Polecenia wewnętrzne:

PODSTAWOWE ELEMENTY ASEMBLERA TRYBY ADRESOWANIA. OPERATORY ASEMBLERA

Administracja systemem Windows XP

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,

Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1. Kraków 2013

Języki i metodyka programowania. Wprowadzenie do języka C

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Wykład PASCAL - Pliki tekstowe

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Edytor tekstu OpenOffice Writer Podstawy

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Trochę o plikach wsadowych (Windows)

Podstawy i języki programowania

Laboratorium - Narzędzia linii uruchamiania w systemie Windows 7

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

KRYTERIA OCENIANIA Z ZAJĘĆ KOMPUTEROWYCH W KLASIE IV

PAMIĘĆ OPERACYJNA...107

P R OGRA M OW A N I E KOMPUTERÓW Ćwiczenia laboratoryjne. TEMAT 8: Moduły standardowe

Języki Programowania. Elementy języków programowania. Wojciech Sobieski

Instrukcja do programu BASIC PR-02

Instalacja programu:

Język ludzki kod maszynowy

Dodatek A. Spis instrukcji języka Prophio.

Tablice (jedno i wielowymiarowe), łańcuchy znaków

TIME MARKER. Podręcznik Użytkownika

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

PODSTAWOWE INFORMACJE NA TEMAT KONSOLI W SYSTEMIE WINDOWS

Wprowadzenie do Scilab: podstawy języka Scilab

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.

Robert Barański, AGH, KMIW MathScript and Formula Nodes v1.0

Programowanie w Turbo Pascal

Podstawy programowania w C++

Ćwiczenie 3. Konwersja liczb binarnych

Podstawy programowania w języku C

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Transkrypt:

M++ Compiler 1.5 ALFA Autor: Michał Michzimny Zimniewicz 1

Spis treści 1. Opis kompilatora 2. Instalacja 3. Opis języka 3.1. Składnia 3.2. Instrukcje 3.2.1. Instrukcje wejścia/wyjścia 3.2.2. Instrukcje graficzne 3.2.3. Instrukcje sterujące 3.2.4. Pozostałe 3.3. Zmienne 3.4. Operatory 3.5. Dyrektywy kompilatora 4. Przykładowy program 4.1. Kod programu 4.2. Kompilacja 4.3. Konwertowanie do pliku EXE 5. Użyte materiały i technologie 6. Dodatek: Błędy kompilacji 3 4 5 5 6 6 7 7 8 8 9 9 10 10 10 11 11 12 2

1. Opis kompilatora M++ Compiler jest kompilatorem języka M++. Podstawowym składnikiem pakietu jest wsadowy kompilator ( mpp.exe ). Nie posiada on własnego edytora, przez co kod programu należy przygotować w dowolnym innym programie zapisującym pliki w formacie TXT (chociażby Notatnik z Windows). Pliki skompilowane za pomocą M++ Compiler mają format COM, przez co mogą być uruchamiane w dowolnym środowisku kompatybilnym z systemem DOS. Należy pamiętać, że pliki typu COM nie mogą być większe niż 64 kb! W skład pakietu wchodzi także konwerter plików ( com2exe.exe ), który zamienia pliki COM na pliki EXE. Język posiada bardzo prostą składnię wzorowaną na językach Pascal, C++ oraz Assembler. Wszystkie jego instrukcje są tak zaprojektowane, że prędkością dorównują 32-bitowemu Assemblerowi. 3

2. Instalacja Aby rozpocząć proces instalacji uruchamiamy instalatora pakietu (plik setup_mpp.exe ). Klikamy Next. Pojawi się licencja programu, którą musimy zaakceptować zaznaczając pole. Następnie klikamy Next, by przejść dalej. Teraz wybieramy miejsce instalacji programu, a na kolejnym ekranie klikamy Start, aby rozpocząć kopiowanie plików. Po zakończeniu kopiowania możemy jeszcze przejrzeć listę plików, a następnie proces instalacji kończy się. We skazanym miejscu pojawił się folder M++ Compiler v1-5a. Teraz możemy jeszcze skojarzyć pliki *.mpp z edytorem tekstu (np. Notatnik), ale nie jest to koniecznie, bowiem możemy używać również plików *.txt. 4

3. Opis języka Poniżej przedstawiam opis składni oraz elementów języka M++. Jest to wstęp do programowania w tym języku. Jeśli kiedykolwiek programowałeś w Pascalu zrozumienie tego języka nie powinno stać się problemem. 3.1. Składnia Tak wygląda przykładowy program Hello world : //program Hello world begin put Hello world!!! end Program po uruchomieniu wyświetli na ekranie napis Hello world!!!, następnie poczeka na wciśnięcie dowolnego klawisza i zakończy się. Linia //program... jest komentarzem, który jest ignorowany przez kompilator; ma tylko za zadanie pomagać programiście. Komentarze rozpoczynamy dwoma slashami - //. Begin i End to tzw. ramy programu. Wszystkie instrukcje wykonywane przez program muszą się znajdować między nimi. W programie występują tylko raz! Jeśli wywoła się jakąś procedurę przed słowem Begin kompilator zgłosi błąd. Instrukcje znajdujące się za End są przez kompilator ignorowane (po natrafieniu w programie na słowo End kompilator kończy proces kompilacji). Instrukcja Put jest odpowiedzialna za wyświetlanie tekstu, natomiast Get wstrzymuje program aż do naciśnięcia dowolnego klawisza. Więcej informacji w dziale Instrukcje. Każda instrukcja występuje w osobnej linii! Parametry podajemy oddzielone spacją od instrukcji (nie jest to jednak koniecznie). Jeśli parametrów jest więcej oddzielamy je przecinkiem. Parametry tekstowe umieszczamy pomiędzy dwoma apostrofami (np. Hello world!!! ). Wielkość liter w kodzie jest dowolna, ponieważ dla kompilatora a i A to to samo. 5

3.2. Instrukcje Poniżej przedstawione zostały wszystkie instrukcje języka M++ dostępne w wersji 1.5a. 3.2.1. Instrukcje wejścia/wyjścia Instrukcje służące do wyświetlania tekstu i operacji w trybie tekstowym oraz instrukcje obsługi klawiatury. Put s Wyświetla na ekranie ciąg znaków s lub zawartość zmiennej typu char. put Hello world!!! put #ch Cls Czyści zawartość ekranu. cls Get Zatrzymuje wykonywanie programu i czeka na wciśnięcie dowolnego klawisza. Można dodać jako parametr zmienną char, w której zostanie umieszczony wciśnięty klawisz. #ch Nl Przenosi kursor o jedną linię w dół. SetTM Uruchamia tryb tekstowy i czyści ekran. SetTM //równoznaczne z SetVGA 3 6

3.2.2. Instrukcje graficzne Instrukcje służące malowania na ekranie w trybie graficznym $13 (uruchamianym poleceniem SetGM) oraz do jego obsługi. SetVGA n Ustawia tryb (VGA) pracy karty graficznej. SetVGA $13 //tryb graficzny 320x200 (256 kolorów) SetGM Uruchamia tryb graficzny. SetGM //równoznaczne z SetVGA $13 SetSVGA n Uruchamia tryb SVGA (M++ nie posiada instrukcji do obsługi tych trybów). SetSVGA $101 BgColor n Zmienia kolor tła na kolor o numerze n. BgColor 4 // zmienia kolor na czerwony Pixel x,y,n Na współrzędnych x,y rysuje piksel o kolorze n. Pixel 50, 30, 2 // rysuje zielony piksel (2) na współrzędnych 50, 30 3.2.3. Instrukcje sterujące Opisy instrukcji skoków oraz pętli. Loop n... Stop Tworzy pętle, która wykonuje instrukcje znajdujące się pomiędzy Loop i Stop n razy. Loop 10 put abc Stop //instrukcje put i zostaną wykonane 10 razy Jump label Skacze do etykiety label. Etykieta ta musi wystąpić przed instrukcją Jump, więc pozwala ona tylko na skoki do tyłu. Etykiety poprzedzamy dwukropkiem :. :abc put jump Jump abc //w nieskończoność przeskakuje do etykiety abc 7

3.2.4. Pozostałe Inne instrukcje języka M++. Nope Nic nie robi. Nope Wait n Zatrzymuje wykonywanie programu na n/10 sekundy. Może działać nieprawidłowo na procesorach szybszych niż 200 MHz. wait 20 //czeka 20/10=2 sekundy Beep Generuje sygnał z głośniczka systemowego. Beep Large n Zwiększa rozmiar programu o n bajtów. Large 10 //zwiększ rozmiar programu o 10 bajtów Huge n Zwiększa rozmiar programu o n kilobajtów. Huge 24 //zwiększa rozmiar programu o 24 kb MCI n Machine Code Instruction. Wstawia instrukcje w kodzie maszynowym. Uwaga! Nieumiejętne użycie w najlepszym wypadku zawiesi program! mci $B4 mci $04 // wstaw do kodu instrukcje $B4 $04 = mov ah, 4 Halt Przerywa w tym miejscu działanie programu. Halt 3.3. Zmienne Schemat deklaracji zmiennych wygląda następująco: typ #nazwa Zmienne można deklarować w dowolnym miejscu programu (np. przed Begin lub między innymi instrukcjami). Typy dostępne w wersji 1.5a to byte i char. Obydwa maja rozmiar 1 bajtu. Byte przechowuje liczbę w zakresie od 0 to 255, a char znak ASCII. Wartość początkowa zmiennych to 0 (dla typu char będzie to znak NULL ASCII #0). Przykładowa deklaracja zmiennych: byte #abc 8

byte #def char #zxc char #qwerty Nazwa zmiennej musi się składać z liter, cyfr lub znaku _, przy czym pierwszym znakiem zawsze musi być # (zarówno przy deklaracji jak i użyciu). Operacje na zmiennych #abc=x //przypisanie wartości x #abc++ //inkrementacja (+1) #abc-- //dekrementacja (-1) #abc+=x //zwiększenie o x #abc-=x //zmniejszenie o x W przypadku operacji przypisania, wartość musi być gotową liczbą (nie inną zmienną). Np. #a=18 #a++ #xcv #qwerty+=25 #sdf-=212 #abc=#def //BŁĄD!!! 3.4. Operatory Liczba podana jako parametr jakiejś procedury jest traktowana jak liczba dziesiętna. Istnieje jednak możliwość podawania parametrów w innych systemach. Jeśli liczba ma być heksadecymalna (szesnastkowa) to poprzedzamy ją znakiem dolara ( $ ), a jeśli binarna (dwójkowa) to znakiem procentu ( % ). 3.5. Dyrektywy kompilatora Dyrektywy te sterują procesem kompilacji. Dyrektywy kompilatora poprzedzamy znakiem wykrzyknika!. Można je umieścić w dowolnym miejscu programu, ale jako instrukcje, czyli w osobnej linii. Dyrektywy mogą występować przed Begin. Dyrektywa E End. Określa kompilatorowi, czy na końcu programu (w miejscu wystąpienia End) program ma się kończyć (tzn. dodawać instrukcje Halt). Jeśli tak się nie stanie, a program korzysta ze zmiennych może się zawiesić. -!e+ (dodaj instrukcje halt domyślnie) -!e- (nie dodawaj tej instrukcji) 9

4. Przykładowy program Teraz przedstawię prosty program stworzony w M++. Najpierw wyświetlimy 3 razy nazwę programu, potem poprosimy użytkownika o wciśnięcie jakiegoś klawisza, a na koniec przejdziemy do trybu graficznego i zmienimy kolor tła. Kod tego programu dostępny jest w folderze examples pod nazwą example.mpp. 4.1. Kod programu begin loop 3 //3 razy powótrz instrukcje put i put 'Example for M++' stop put 'Wcisnij dowolny klawisz...' char #ch #ch //pobierz znak put 'Nacisnales klawisz: ' put #ch //wyświetl znak put 'Nacisnij dowolny klawisz, to przejde do trybu graficznego' end SetGM //uruchom tryb graficzny 13h BgColor 2 BgColor 3 BgColor 4 4.2. Kompilacja Teraz uruchamiamy M++ Compiler (mpp.exe) i podajemy nazwę pliku z kodem źródłowym (lub ścieżkę, gdy jest w innym folderze). W systemie Windows możemy też przeciągnąć ikonę pliku na ikonę mpp.exe. Po podaniu ścieżki wciskamy ENTER. Gdy kompilacja się zakończy pojawi się odpowiedni komunikat. Jeśli w kodzie są błędy wyświetli się komunikat o błędzie (patrz Rozdział 6). W wyniku kompilacji powstanie plik o tej samej nazwie co kod źródłowy i rozszerzeniu COM. 10 10

4.3. Konwertowanie do pliku EXE Stworzony w ten sposób program możemy przekonwertować to formatu EXE. Aby to zrobić należy uruchomić program Com2Exe (com2exe.exe) i podać nazwę pliku COM (lub ścieżkę; patrz wyżej). Można też przeciągnąć ikonę tak jak w przypadku kompilacji. Po konwersji powstanie plik *.exe. 5. Użyte materiały i technologie Środowisko programistyczne: Free Pascal Compiler 1.0.6 Dodatkowe narzędzia: ClickTeam InstallCreator Netwide Assembler Materiały: Ralf Brown's Interrupt List Intel Architecture Software Developer's Manual 11 11

6. Dodatek: Błędy kompilacji Nr błędu Błąd Opis błędu 1. Nieznane polecenie Podana instrukcja nie istnieje 2. Brak parametru Instrukcja wymaga parametru 3. Nieprawidłowy parametr Nieprawidłowy typ parametru 4. Oczekiwano znaku : Wywołano MCI bez znaku : 5. Oczekiwano END Brak instrukcji END 6. Oczekiwano BEGIN Brak instrukcji BEGIN 8. Za długa etykieta Etykieta może mieć do 8 znaków 9. Nieznana etykieta Użyta etykieta nie istnieje 10. Za dużo etykiet Maksymalna liczba etykiet to 32 11. Oczekiwano LOOP Wywołano STOP bez LOOP 12. Za duża pętla Pętla może mieć max. 256 bajtów 13. Oczekiwano STOP Wywołano LOOP bez STOP 50. Nieprawidłowa deklaracja zmiennej Nieprawidłowy format deklaracji 51. Nieznany typ zmiennej Podany typ nie istnieje 52. Nieprawidłowa nazwa zmiennej Użyto nieprawidłowych znaków 53. Za dużo zmiennych Max. liczba zmiennych to 128 54. Nieznana zmienna Użyto nieznanej zmiennej 55. Nieprawidłowe użycie zmiennej Nieprawidłowa składnia 56. Nieprawidłowa wartość Wartość poza zakresem 57. Niezgodność typów Wartości niezgodna z typem 58. Niezadeklarowana zmienna Użyto nieznanej zmiennej 59. Podwójna deklaracja zmiennej Dwa razy zadeklarowano zmienną 100. Podany plik wejściowy nie istnieje Ścieżka do pliku jest niewłaściwa 101. Nie można utworzyć pliku *.com Dysk chroniony przed zapisem 200. Zbyt długi wiersz Max. długość wiersza to 120 999. Nieznany błąd --- 12 12