Spelling suggestions: "subject:"abstract syntax trees"" "subject:"aabstract syntax trees""
1 |
Transformacijų tarp konkrečių programavimo kalbų abstrakčios sintaksės medžių ir nuo kalbos nepriklausomų abstrakčios sintaksės medžių tyrimas / Investigation of transformations between abstract syntax trees of a concrete programming language and language-independent abstract syntax treesStankevičius, Rytis 13 August 2010 (has links)
Medžių tipo duomenų struktūras transformuojantys įrankiai naudojami išspręsti gausybę įvairaus tipo problemų: kompiliatorių, kodo optimizatorių, dokumentacijos ir kodo generavimo įrankių kūrimo ir pan. Bet nei vienas iš šių egzistuojančių įrankių nėra specialiai skirtas abstrakčios sintaksės medžių transformacijoms į nuo kalbos nepriklausomą formą, ar iš jo.
Šis magistro darbas aprašo sistemą, kuri pateiktą konkretų abstrakčios sintaksės medį (abstrakčios sintaksės medį, kuris išreiškia realios programavimo kalbos – C#, Java, Ruby ar pan. –
programinio kodo struktūrą) transformuoja į nuo kalbos nepriklausomą abstrakčios sintaksės medį, bei atvirkščiai. Taisyklės, aprašančios vieno medžio transformavimą į kitą, yra aprašytos XML formatu paremtuose failuose, kurių struktūra aiški ir paprasta. Sistemą galima naudoti kaip nepriklausomą komponentą arba kaip įrankį trečiųjų šalių programinėje įrangoje. Tiek sistemos pagrindinės bibliotekos, tiek jas naudojantys įrankiai yra parašyti Java programavimo kalba.
Sistemos tyrimu siekta įrodyti du dalykus: kad sistema gali teisingai transformuoti pateiktąjį konkretų abstrakčios sintaksės medį į jį atitinkantį bendrinį medį, ir atvirkščiai; ir kad transformavimo vykdymo laikas yra leistinose ribose. Abiejų tikslų buvo pasiekta. Remiantis šiais rezultatais prieita išvados, jog sistema yra tinkamas kandidatas tapti pagrindu trečiųjų šalių įrankiams, atliekantiems programinio kodo migravimą, pertvarkymus (angl. „refactoring“), modelių... [toliau žr. visą tekstą] / Tools for transforming tree-like data structures are used for solving a range of different problems, such as creation of compilers, code optimizers, documentation and code generation tools, etc. But none of these existing tools seem to be specialized in transforming abstract syntax trees to a language-independent format or from it. This master‘s thesis describes a system that takes concrete abstract syntax trees (ASTs that represent the structure of code written in a real programming language, such a C#, Java, Ruby, etc.) and transforms them into language-independent abstract syntax trees, and vice versa. Rules for mapping one AST to the other are defined in XML-based configuration files that have a simple and clear structure. The system can be used as a stand-alone tool or used as component in third party software. Both the system’s core libraries and tools are written in Java. The purpose of the system’s investigation was to prove two things: that the system can correctly transform a given specific AST to an equivalent generic AST, and vise versa; and that the transformation execution time is within an acceptable range. Both goals were met. This led to a conclusion that the system is a suitable candidate for use by third party tools that handle code migration, refactoring, model transformation and other types of similar tasks.
|
2 |
Implementation and Evaluation of an Emulated Permission System for VS Code Extensions using Abstract Syntax Trees / Implementation och Utvärdering av ett Emulerat Behörighetssystem för Extensions i VS Code med hjälp av Abstrakta SyntaxträdDavid, Åström January 2021 (has links)
Permission systems are a common security feature in browser extensions and mobile applications to limit their access to resources outside their own process. IDEs such as Visual Studio Code, however, have no such features implemented, and therefore leave extensions with full user permissions. This thesis explores how VS Code extensions access external resources and presents a proof-of-concept tool that emulates a permission system for extensions. This is done through static analysis of extension source code using abstract syntax trees, scanning for usage of Extension API methods and Node.js dependencies. The tool is evaluated and used on 56 popular VS Code extensions to evaluate what resources are most prevalently accessed and how. The study concludes that most extensions use minimal APIs, but often rely on Node.js libraries rather than the API for external functionality. This leads to the conclusion the inclusion of Node.js dependencies and npm packages is the largest hurdle to implementing a permission system for VS Code.
|
3 |
C-language code generator for SOFA 2 / C-language code generator for SOFA 2Ježek, Lukáš January 2011 (has links)
SOFA 2 is a component system employing hierarchically composed components. It provides ADL-based design, behavior specification using behavior protocols, dynamic reconfiguration of the components, and modeling of the component communication by software connectors. This allows seamless and transparent distribution of component applications. The connectors can be automatically generated, SOFA 2 contains Java connector generator allowing to connect components with Java interfaces. The aim of this thesis is to implement C code generator and integrate it into the current SOFA 2 connector generator framework, so that C connectors can be automatically generated and thus components written in C language can be transparently connected in distributed environment. The proposed C code generator is based on the concept of template transformation, where templates containing mixture of C code and a scripting Domain Specific Language are transformed to a pure C code. Strategic term rewriting method provided by Stratego/XT framework is used for evaluation of the scripts within the templates.
|
Page generated in 0.0506 seconds