Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
toy language (in czech language only)
C++ Objective-J C
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
doc
examples
src
website
.gitignore
AUTHORS
COPIYNG
Changelog
README

README

Project 'pes' is completely documented and written in czech language, because it
is created for study purposes (for czech students).


Primitivni programovaci jazyk 'pes'
===================================

KOMPILACE
=========

Pro preklad kompilatoru jazyka pes ze zdrojovych kodu do binarni podoby
potrebujete prekladac jazyka c++ (ve kterem je kompilator jazyka pes napsan).
Nejvhodnejsi je kompilator g++ (ze sady kompilacnich nastroju gcc). Lze pouzit
i kompilator c++ dodavany se solarisem a nektere dalsi prekladace c++. Preklad
byl bezchybne proveden na operacnich systemech GNU/Linux, FreeBSD a Solaris.
Zdrojove kody programu jsou obsazeny v adresari 'src/' v nemz se nachazi take
soubor 'Makefile', ve kterem je ulozen navod na sestaveni programu. Makefile
lze pouzit pomoci prikazu 'make' na operacnich systemech typu GNU/Linux,
popripade prikazem 'gmake' na UNIXovych operacnich systemech.

Priklad kompilace:

  $ cd src/
  $ make
  c++ -Wall -Wextra -pedantic -ansi -c -o pesc.o pesc.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o lexan.o lexan.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o synan.o synan.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o cUzel.o cUzel.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o cProgram.o cProgram.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o cDokud.o cDokud.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o cPokud.o cPokud.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o cPodminka.o cPodminka.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o cPrirazeni.o cPrirazeni.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o cVraceni.o cVraceni.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o cSoucet.o cSoucet.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o cRozdil.o cRozdil.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o cNasobek.o cNasobek.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o cPodil.o cPodil.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o cIdentifikator.o cIdentifikator.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o cInt.o cInt.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o cFloat.o cFloat.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o cBlok.o cBlok.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o cPrikaz.o cPrikaz.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o cVyraz.o cVyraz.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o cTerm.o cTerm.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o cZbTermu.o cZbTermu.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o cFaktor.o cFaktor.cpp
  c++ -Wall -Wextra -pedantic -ansi -c -o cTS.o cTS.cpp
  c++ -Wall -Wextra -pedantic -ansi -o pesc pesc.o lexan.o synan.o cUzel.o \
    cProgram.o cDokud.o cPokud.o cPodminka.o cPrirazeni.o cVraceni.o \
    cSoucet.o cRozdil.o cNasobek.o cPodil.o cIdentifikator.o cInt.o \
    cFloat.o cBlok.o cPrikaz.o cVyraz.o cTerm.o cZbTermu.o cFaktor.o cTS.o
  $ # hotovo

Pokud se neco nepodari, kontaktujte prosim autora (viz AUTOR)


SPUSTENI
========

Pro spusteni je potreba mit prelozeny program 'pesc'. Ten ziskate pomoci
informaci uvedenych v sekci KOMPILACE. Po uspesne kompilaci by jste meli
obdrzet binarni soubor 'src/pesc'. Tento program bere jako jediny parametr
- nazev souboru, ve kterem je ulozen kod v programovacim jazyce PES.

Priklad spusteni:

  $ ./pesc ../examples/euklid.pes > euklid.j


SOUBORY
=======

doc/grammar/ebnf.txt              - syntaxe zapsana pomoci EBNF
doc/grammar/syngram.txt           - syntakticka pravidla v klasickem zapisu
doc/grammar/semgram_ast.txt       - semanticka pravidla (pouziti vnitrni formy)
doc/grammar/vnitrniforma.txt      - doplnujici soubor pro semanticka pravidla
doc/grammar/semgram_atg.txt       - semanticka pravidla ZASTARALE!
doc/setsAndTable.html             - mnoziny FIRST a FOLLOW, rozkladova tabulka
doc/lexFA.png                     - lexikalni analyzator jako obrazek automatu
doc/lexFA.dot                     - lexikalni analyzator popsany jako automat v
                                    jazyce DOT

src/Makefile                      - postup pro kompilaci projektu
src/lexan.cpp                     - kod lexikalniho analyzatoru
src/lexan.h                       - hlavicka pro lexikalni analyzator
src/synan.cpp                     - kod syntaktickeho analyzatoru
src/synan.h                       - hlavicka pro syntakticky analyzator
src/pesc.cpp                      - hlavni zdrojovy soubor
src/cTS.cpp                       - kod tabulky symbolu
src/cTS.h                         - hlavicka tabulky symbolu
...                               - dalsi tridy a hlavicky


examples/euklid.pes               - eukliduv algoritmus pro GCD
examples/faktorial.pes            - vypocet faktorialu
examples/linearni_rovnice.pes     - reseni linearni rovnice ax+b=0
examples/mocnina.pes              - pocitani mocniny a^x
examples/nic.pes                  - nejmensi program
examples/operace.pes              - ukazka operaci
examples/rocnivyplata.pes         - vypocet rocni vyplaty
examples/vypocet_obvodu_kruhu.pes - vypocet obvodu kruhu
examples/sigma.pes                - sigma funkce
         (http://en.wikipedia.org/wiki/Divisor_function)
examples/oneline.pes              - ukazka zhustene syntaxe
examples/zisk.pes                 - vypocet zisku
Something went wrong with that request. Please try again.