National Repository of Grey Literature 7 records found  Search took 0.00 seconds. 
Truffle based .NET IL interpreter and compiler: run C# on Java Virtual Machine
Gocník, Jan ; Šindelář, Štěpán (advisor) ; Petříček, Tomáš (referee)
Traditionally, to achieve high performance for executing dynamic languages, a hand-crafted Just-In-Time (JIT) compiler was necessary. Such compilers come with several disadvantages, including security issues arising from bugs in manual speculative optimizations. Our work focuses on the issue that these state-of-the- art projects can be prohibitively complicated for students, academics and hob- byists interested in programming language design and implementation. A novel project, the Truffle Language Implementation Framework, uses partial evalua- tion to convert interpreter-style code into an optimizing compiler. Authors pro- pose that the reduced complexity for implementing languages Truffle offers will allow more languages to benefit from high performance compilation. To validate this claim, we implement BACIL, a Truffle-based runtime for .NET (CLI). While built in an academic setting with inherently limited resources, its peak perfor- mance achieves under 10 times slowdown compared to .NET's official runtime. We release the implementation as open-source with the hope it can further pro- mote experimentation with programming languages.
Podpora návrhových vzorů ve vývojových prostředích
Šindelář, Štěpán ; Zavoral, Filip (advisor) ; Stárka, Jakub (referee)
A design pattern is a description of communicating objects and classes that are customized to solve a general design problem in a concrete context. The main aim of design patterns is to make the design reusable and flexible. However, the flexibility provided by design patterns is usually achieved by introducing new classes into the design and developers often don't have enough time to create a textual documentation for them, therefore the mapping between classes and design patterns is lost. Moreover, incorrect understanding of a specific design pattern can produce communication errors, or even software bugs. In this thesis we present Patterns4Net project that targets the .NET platform. With Patterns4Net developers can annotate their classes using special attributes that document the usage of design patterns in a standardized way. This documentation is then used to verify correctness of design patterns implementation, to generate interactive UML-like class diagrams that emphasize the connection between design patterns and concrete classes.
Implementing control flow resolution in dynamic language
Šindelář, Štěpán ; Zavoral, Filip (advisor) ; Ježek, Pavel (referee)
Dynamic programming languages allow us to write code without type information and types of variables can change during execution. Although easier to use and suitable for fast prototyping, dynamic typing can lead to error prone code and is challenging for the compilers or interpreters. Programmers often use documentation comments to provide the type information, but the correspondence of the documentation and the actual code is usually not checked by the tools. In this thesis, we focus on one of the most popular dynamic programming languages: PHP. We have developed a framework for static analysis of PHP code as a part of the Phalanger project -- the PHP to .NET compiler. The framework supports any kind of analysis, but in particular, we implemented type inference analysis with emphasis on discovery of possible type related errors and mismatches between documentation and the actual code. The implementation was evaluated on real PHP applications and discovered several real errors and documentation mismatches with a good ratio of false positives. Powered by TCPDF (www.tcpdf.org)
ALTREP Data Representation in FastR
Marek, Pavel ; Šindelář, Štěpán (advisor) ; Horký, Vojtěch (referee)
R is a programming language and a tool used mostly in statistics and data analysis domains, with a rich package-based extension system. GNU-R, the standard interpreter of R, in version 3.5.0 introduced a new native API (ALTREP) for R extensions developers. The goal of the thesis is to implement this API for FastR, an interpreter of R based on GraalVM and Truffle, and explore options for optimization of FastR in context of this API. The motivation is to increase the number of extensions that can be installed and run on FastR. 1
ALTREP Data Representation in FastR
Marek, Pavel ; Šindelář, Štěpán (advisor) ; Horký, Vojtěch (referee)
R is a programming language and a tool used mostly in statistics and data analysis domains, with a rich package-based extension system. GNU-R, the standard interpreter of R, in version 3.5.0 introduced a new native API (ALTREP) for R extensions developers. The goal of the thesis is to implement this API for FastR, an interpreter of R based on GraalVM and Truffle, and explore options for optimization of FastR in context of this API. The motivation is to increase the number of extensions that can be installed and run on FastR. 1
Implementing control flow resolution in dynamic language
Šindelář, Štěpán ; Zavoral, Filip (advisor) ; Ježek, Pavel (referee)
Dynamic programming languages allow us to write code without type information and types of variables can change during execution. Although easier to use and suitable for fast prototyping, dynamic typing can lead to error prone code and is challenging for the compilers or interpreters. Programmers often use documentation comments to provide the type information, but the correspondence of the documentation and the actual code is usually not checked by the tools. In this thesis, we focus on one of the most popular dynamic programming languages: PHP. We have developed a framework for static analysis of PHP code as a part of the Phalanger project -- the PHP to .NET compiler. The framework supports any kind of analysis, but in particular, we implemented type inference analysis with emphasis on discovery of possible type related errors and mismatches between documentation and the actual code. The implementation was evaluated on real PHP applications and discovered several real errors and documentation mismatches with a good ratio of false positives. Powered by TCPDF (www.tcpdf.org)
Podpora návrhových vzorů ve vývojových prostředích
Šindelář, Štěpán ; Zavoral, Filip (advisor) ; Stárka, Jakub (referee)
A design pattern is a description of communicating objects and classes that are customized to solve a general design problem in a concrete context. The main aim of design patterns is to make the design reusable and flexible. However, the flexibility provided by design patterns is usually achieved by introducing new classes into the design and developers often don't have enough time to create a textual documentation for them, therefore the mapping between classes and design patterns is lost. Moreover, incorrect understanding of a specific design pattern can produce communication errors, or even software bugs. In this thesis we present Patterns4Net project that targets the .NET platform. With Patterns4Net developers can annotate their classes using special attributes that document the usage of design patterns in a standardized way. This documentation is then used to verify correctness of design patterns implementation, to generate interactive UML-like class diagrams that emphasize the connection between design patterns and concrete classes.

Interested in being notified about new results for this query?
Subscribe to the RSS feed.