Doménově specifické jazyky
Domain Specific Languages
diploma thesis (DEFENDED)
![Document thumbnail](/bitstream/handle/20.500.11956/22848/thumbnail.png?sequence=7&isAllowed=y)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/22848Identifiers
Study Information System: 65635
Collections
- Kvalifikační práce [11266]
Author
Advisor
Referee
Surynek, Pavel
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Theoretical Computer Science
Department
Department of Theoretical Computer Science and Mathematical Logic
Date of defense
21. 9. 2009
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
Czech
Grade
Excellent
Dom énově specifi cké jazyky (DSL) jsou jazyky navržen é pro určitou problémovou oblast. Jejich syntaxe a základní primitiva jsou přizpůsobeny t ří dě problém u, kter é mají řeš it. Dí ky této specializaci jsou programy v nich napsané krat ší a srozumitelnější než jejich prot ěj šky zapsané v běžných programovací ch jazycí ch. Velmi efektivní metodou vytv a ření DSL je jejich implementace uvnitř obecného programovací ho jazyka. Vznikaj í tak vno řené doménově specifi cké jazyky (DSEL). Cí lem této práce je prozkoumat techniky pou ží vané při návrhu DSEL ve staticky typovan ych funkcionální ch jazycí ch a analyzovat souvislost mezi vlastnostmi DSEL a vlastnostmi hostitelského jazyka. Za implementa ční jazyk jsme si vybrali Haskell.
Domain speci c languages (DSL) are languages designed for one particular area. Their syntax and basic primitives are carefully chosen to t the class of problems they are meant to solve. Because of this specialisation, programs written using DSL are usually more concise and coherent than their counterparts written in common programming languages. There is a very e ective way to implement DSL { to de ne them inside a fulledged language. This leads to so called domain speci c embedded languages (DSEL). Purpose of this thesis is to investigate techniques used in implementation of DSEL and to analyse connection between features of host and embedded language. We focus on statically typed functional languages as host languages. We have choosen Haskell as an implementation language.