National Repository of Grey Literature 99 records found  1 - 10nextend  jump to record: Search took 0.01 seconds. 
A system for introspection in C++
Fačko, Peter ; Bednárek, David (advisor) ; Ježek, Pavel (referee)
Introspection and reflection are powerful programming tools that allow generic solu- tions for difficult problems such as multiple dispatch or serialization. In C++, the support for introspection is seriously limited, while reflection is virtually non-existent. The langu- age standard has been developing significantly in recent past and thus it is now possible to extend the language with those features using a custom tool. The result of this thesis is an introspection library working with metadata generated from source code and a compiler- based metadata generator. The functionality of the whole system shall be demonstrated by implementing multiple dispatch, for which there is no simple implementation in stan- dard C++. 1
Automated Program Minimization With Preserving of Runtime Errors
Leskovar, Denis ; Parízek, Pavel (advisor) ; Bednárek, David (referee)
Debugging large programs is a complex and time-consuming task, which has not been fully automated yet. Given a runtime error, the developer must first reproduce it. He then has to find the root cause of the error and create a proper bug fix. Automation can make this process significantly more efficient by reducing the amount of code the developer has to look through. The goal of this thesis is to propose and discuss automated techniques for reducing a given failing program into its minimal runnable subset. We introduce three methodologies that are practical for program reduction. The automatically minimized program must result in the same runtime error as the original program. The process of minimization focuses on producing optimal results for the domain of small and simple applications. All three techniques are implemented using Clang LibTooling, a library for standalone Clang tools. In the thesis, we explain the inner workings of each implementation and discuss their limitations. Implementations are benchmarked on a set of C and C++ source files. Performance is evaluated with respect to the size of the generated output and the algorithm's running time. 1
USB Packet Analyzer
Lakatoš, Peter ; Ježek, Pavel (advisor) ; Bednárek, David (referee)
The USB bus is the most common way of connecting peripherals to personal computers. The goal of this thesis is to create an application which analyzes communication between a device connected to this bus and a computer. The application is capable to readably display analyzed data, with specific focus on HID class devices. The application implements semantic analysis of a subset of HID devices consisting of mice, keyboards and joysticks. The methods that the application uses to visually represent data are inspired by already existing applications, where our application combines them and impoves their capabilities to achieve better results. Notable part of the application is its ability to parse HID Report Descriptor, to accomplish easier addition of new HID devices for semantic analysis. Overall design of the application is general enough to allow simple addition of analysis for other USB classes. 1
Branching loop summarization
Tatarko, William ; Blicha, Martin (advisor) ; Bednárek, David (referee)
In this thesis we present a novel algorithm for summarization of loops with multiple branches operating over integers. The algorithm is based on anal- ysis of a so-called state diagram, which reflects feasibility of various branch interleavings. Summarization can be used to replace loops with equivalent non-iterative statements. This supports examination of reachability and can be used for software verification. For instance, summarization may also be used for (compiler) optimizations. 1
Data measurement system
Plachý, Jiří ; Bednárek, David (advisor)
The thesis deals with design and implementation of an automated system for measuring, storing and analyzing data gathered from external hardware. At first, various architectures of data measurement systems are compared, their advantages and typical areas of application are described. Next, different types of measuring probes hardware and data analysis software solutions are compared. Various technologies usable in data measurement system implementation are discussed (in particular A/D converters, connecting the converter to the computer, comparing the software architectures and used technologies). Based on this discussion, technologies for implementation are chosen. The described implementation consists of two-channel probe equipped with 10-bit A/D converter and sample input modules for temperature and voltage. The probe is connected to the USB using the FTDI converter. Practically tested schematics for the probe hardware are included. The implemented software can be used in two configurations - base configuration for easy installation on one computer, hierarchical configuration for complex solutions running on several computers. The text of the thesis, executable files, the user documentation, documented source codes, and documentation of used electronic components can be found on the enclosed CD.
Analýza paralelizovatelnosti programů na základě jejich bytecode
Brabec, Michal ; Bednárek, David (advisor)
Analysis of automatic program parallelization based on bytecode There are many algorithms for automatic parallelization and this work explores the possible application of these algorithms to programs based on their bytecode or similar intermediate code. All these algorithms require the identification of independent code segments, because if two parts of code do not interfere with one another then they can be run in parallel without any danger of data corruption. Dependence testing is an extremely complicated problem and in general application, it is not algorithmically solvable. However, independences can be discovered in special cases and then they can be used as a basis for application of automatic parallelization, like the use of vector instructions. The first step is function inlining that allows the compiler to analyze the code more precisely, without unnecessary dependences caused by unknown functions. Next, it is necessary to identify all control flow constructs, like loops, and after that the compiler can attempt to locate dependences between the statements or instructions. Parallelization can be achieved only if the analysis discovered some independent parts in the code. This work is accompanied by an implementation of function inlining and code analysis for the .NET framework.
Syntax-driven duplicate-code detection
Saksa, Jakub ; Bednárek, David (advisor) ; Kopecký, Michal (referee)
Duplicate code occurs in source files for different reasons. In many cases the motivation for copying the code is laziness of a programmer, or an attempt to use an alien source code. Over the years, multiple methods for detection of the duplicate source code have been developed. Approaches vary in the ways they analyze the code, focusing on different representations of the program. Methods based on the analysis of the syntactic properties of the source code often use abstract syntax trees. By examining the tree representation instead of the textual representation of the code, these methods are able to detect duplicate code that underwent formatting changes as well as changes to the names of identifiers. Duplicate code fragments are discovered by identifying the subtrees of the same shape. After the suspicious parts of the tree are identified, further examination of AST properties determines to what extent the code was copied. In this work we develop a system for duplicate code detection based on AST comparison.
High-performance exploration and querying of selected multi-dimensional spaces in life sciences
Kratochvíl, Miroslav ; Bednárek, David (advisor) ; Glaab, Enrico (referee) ; Svozil, Daniel (referee)
This thesis studies, implements and experiments with specific application-oriented approaches for exploring and querying multi-dimensional datasets. The first part of the thesis scrutinizes indexing of the complex space of chemical compounds, and details a design of high-performance retrieval system for small molecules. The resulting system is then utilized within a wider context of federated search in heterogeneous data and metadata related to the chemical datasets. In the second part, the thesis focuses on fast visualization and exploration of many-dimensional data that originate from single- cell cytometry. Self-organizing maps are used to derive fast methods for analysis of the datasets, and used as a base for a novel data visualization algorithm. Finally, a similar approach is utilized for highly interactive exploration of multimedia datasets. The main contributions of the thesis comprise the advancement in optimization and methods for querying the chemical data implemented in the Sachem database cartridge, the federated, SPARQL-based interface to Sachem that provides the heterogeneous search support, dimensionality reduction algorithm EmbedSOM, design and implementation of the specific EmbedSOM-backed analysis tool for flow and mass cytometry, and design and implementation of the multimedia...
Kampa: an experimental programming language
Rozsypal, Lukáš ; Bulej, Lubomír (advisor) ; Bednárek, David (referee)
Kampa is a general-purpose programming language. It is imperative, but influenced by functional programming. Its distinguishing features include value types with a concise tuple syntax, immutability that applies recursively, and custom named operators. Clo- sures and first-class functions are a matter of course. Thanks to dependent types, the size of an array may be bound to any immutable variable or field. Arrays can be embed- ded in other data structures. This, in conjunction with dependent types, allows almost arbitrary memory layouts. In addition to the specification, this thesis also provides a proof-of-concept implementation built on top of Truffle. 1
Performance assessment of cloud applications
Sándor, Gábor ; Bureš, Tomáš (advisor) ; Bednárek, David (referee)
Modern CPS and mobile applications like augmented reality or coordinated driving, etc. are envisioned to combine edge-cloud processing with real-time requirements. The real-time requirements however create a brand new challenge for cloud processing which has traditionally been best-effort. A key to guaranteeing real-time requirements is the understanding of how services sharing resources in the cloud interact on the performance level. The objective of the thesis is to design a mechanism which helps to categorize cloud applications based on the type of their workload. This should result in specification of a model defining a set of applications which can be deployed on a single node, while guaranteeing a certain quality of the service. It should be also able to find the optimal node where the application could be deployed.

National Repository of Grey Literature : 99 records found   1 - 10nextend  jump to record:
Interested in being notified about new results for this query?
Subscribe to the RSS feed.