mrjp's Introduction
Komlilator języka Latte - wersja z rozszerzeniami autor: Radosław Piórkowski nr indeksu: 335451 ------------------------------------- Spis treści: A. Kompilacja i uruchamianie programu B. Struktora projektu ------------------------------------- Zmiany w projekcie od momentu wysłania kompilatora podstawowej części języka opisane są w pliku NEW README. A. Kompilacja i uruchamianie programu: Do poprawnej kompilacji wymagane są: - GHC w wersji 7.10.2 (na students dostępny w katalogu /home/students/inf/PUBLIC/MRJP/ghc-7.10.2/) - program 'cabal' w wersji 1.22.7.0 (niedostępny publicznie na students, ale można go łatwo zainstalować) - standardowe biblioteki Haskella (instalowane przez 'cabal install') base, mtl, array, containers, lens, transformers Procedura lokalnej instalacji powyższych programów na students przebiegła następująco: 1. Dodanie katalogu z nowym GHC do $PATH: /home/students/inf/PUBLIC/MRJP/ghc-7.10.2/bin/ghc 2. Usunięcie starych wersji instalowanych bibliotek: rm -r ~/.ghc ~/.cabal 3. Pobranie i rozpakowanie żródeł programu cabal-install https://www.haskell.org/cabal/release/cabal-install-1.22.7.0/cabal-install-1.22.7.0.tar.gz 4. Instalacja programu 'cabal-install' poprzez uruchomienie skryptu bootstrap.sh znajdującego się w pobranym archiwum. 5. Dodanie do $PATH katalogu: ~/.cabal/bin Instalacja kompilatora 6. Pobranie wymaganych bibliotek: cabal install 7. Zbudowanie projektu: cabal build Kompilacja odbywa się w prosty sposób przy pomocy programu cabal, zatem zdecydowałem o niedołączaniu do projektu pliku Makefile. B. Struktura projektu LatteC/ bin/ katalog z pomocniczymi skryptami, nieistotny lib/ zawiera pliki runtime.{o,c,h} z funkcjami wbudowanymi w język, oprócz funkcji wymienionych w treści zadania zawiera dodatkowo funkcję konkatenującą dwa napisy (liblatteConcat) scripts/ zawiera skrypt uruchamiający program BNFC, jednak jego używanie *nie jest konieczne*, pliki wygenerowane przez BNFC zostały włączone do repozytorium src/ Backend/ X86/ część projektu odpowiedzialna za generację kodu Frontend/ część projektu odpowiedzialna za sprawdzenie poprawności programu wejściowego Language/ zawiera definicje elementów wbudowanych w język (podstawowe typy, funkcje) Utility/ funkcje pomocnicze Main.hs główny plik projektu, przeprowadza kolejne etapy kompilacji tests/ katalog z testami, nieistotny LatteC.cabal definicja paczki Cabal, zawiera spis zależności latc_x86 skrypt opakowujący wywołania kompilatora LatteC
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.