1 |
Domain-Specific Language for Learning Programming / Domain-Specific Language for Learning ProgrammingKlimeš, Jonáš January 2016 (has links)
In the scope of this thesis, we designed a language for programming education. At first, we described eight existing tools for learning programming and identified key features in the learning process. Second, we designed an educational domain-specific language Eddie. Eddie is suitable for teenagers and adults who want to learn programming. It uses a domain based on Karel the Robot language, where users can control a robot character in a two-dimensional grid. We implemented a prototype of Eddie using the MPS Language Workbench and its projectional editor. The Eddie language gradually introduces loops, conditionals, variables, functions, and objects. Eddie programs can be created, executed and visualized in the Eddie Studio IDE. Powered by TCPDF (www.tcpdf.org)
|
2 |
Domain-specific languages / Domain-specific languagesJasný, Vojtěch January 2009 (has links)
The topic of the thesis are domain-specific languages (DSL) and their use in software development. The target audience are developers interested in learning more about this progressive area of software development. It starts with a necessary theoretical introduction to programming languages. Then, a classification of DSLs is given and software development methodologies based on DSLs are described, notably Language Oriented Programming and Intentional Programming. Another important piece in construction of domain-specific langauges -- the language workbench is also described. In the next chapter, several important tools for DSL creation are presented, described and compared. Each of the tools represents a different possible approach to designing DSLs -- textual, projectional or graphical. The last chapter of the thesis contains a practical example of a DSL implementation in the Meta Programming System by Jet- Brains and Xtext from Eclipse. A domain-specific language for the description of questionnaires is designed from scratch and a code generator for that language is created. A comparison of the DSL based technique to traditional software development techniques is given and the tools used are compared.
|
3 |
Gentleman : a lightweight web-based projectional editorLafontant, Louis-Edouard 11 1900 (has links)
Lors de la conception et la manipulation de logiciel par modélisation, il est avantageux de bénéficier d’un grand degré de liberté au niveau de la présentation afin de comprendre l’information et prendre une action en exerçant peu d’effort cognitif et physique. Cette caractéristique doit aussi s’étendre aux outils que nous employons afin que ceux-ci augmentent nos capacités, plutôt que les restreindre. En génie logiciel, nous travaillons présentement à rehausser encore le niveau d’abstraction afin de réduire le rôle central du code décrit avec un langage de programmation à usage général. Ceci permettrait d’inclure les experts non techniques dans les activités de développement de logiciel. Cette approche, centralisée sur le domaine et l’expert, s’inscrit dans l’ingénierie dirigée par les modèles (IDM), où un modèle est produit et manipulé par divers experts et utilisateurs. Le modèle est alors décrit avec un langage créé spécifiquement pour un domaine d’application ou une tache, appelé langage dédié (DSL). Une technique utilisée pour créer ces modèles et leurs DSL est le projectional editing, qui permet d’utiliser des notations diverses interchangeables et d’étendre et composer facilement un langage. Toutefois, les solutions actuelles sont lourdes, spécifiques à une plateforme, et manquent considérablement d’utilisabilité, limitant ainsi l’usage et l’exploitation de cette approche. Pour mieux refléter les avantages du paradigme IDM avec le style
projectionnel, nous introduisons dans cette thèse Gentleman, un éditeur projectionnel léger sur le web. Avec Gentleman, le développeur crée un modèle en combinant des concepts utilisés pour définir la structure du modèle et des projections pour les manipuler dans l’éditeur. Nous avons évalué Gentleman à travers une étude basée sur un groupe d’utilisateur. L’étude
a confirmé sa capacité à créer et manipuler des modèles efficacement. Les participants ont noté qu’il est facile de prendre en main Gentleman et que l’interface est très intuitive comparativement aux éditeurs existants. Nous avons aussi intégré Gentleman avec succès à une plateforme web, démontrant ainsi ses capacités d’interopérabilité et l’avantage d’une solution
web. / In software activities and, more specifically, when modeling, the modeler should benefit from as much freedom as possible to understand the presented information and take action with minimal cognitive and mechanical effort. This characteristic should also apply to the tools used in the process so that they extend our capabilities rather than limit them. In the field of software engineering, current work aims to push the level of abstraction past general-purpose programming language into domain-specific modeling. This enables domain experts with various backgrounds to participate in software development activities. This vision is central to model-driven engineering (MDE) where, instead of code, various experts and users produce and manipulate domain-specific language (DSL). In recent years, projectional editing has proven to be a valid approach to creating and manipulating DSLs, as it supports various easily interchangeable notations and enables language extension and composition. However, current solutions are heavyweight, platform-specific, and suffer from poor usability.
To better support this paradigm and minimize the risk of accidental complexity in terms of expressiveness, in this thesis, we introduce Gentleman, a lightweight web-based projectional editor. With Gentleman, a developer creates a model by combining concepts used to define its structure and projections to interact and manipulate them in the editor. We have evaluated Gentleman through a user study. The evaluation confirmed its capacity to create and manipulate models effectively. Most participants noted that the editor is very user-friendly and intuitive compared to existing editors. We have also successfully integrated Gentleman into a web application, demonstrating its interoperability and the benefit of a web solution.
|
Page generated in 0.0716 seconds