Spelling suggestions: "subject:"anguage design"" "subject:"1anguage design""
21 |
Nondeterminism and Language Design in Deep InferenceKahramanogullari, Ozan 21 December 2006 (has links)
This thesis studies the design of deep-inference deductive systems. In the systems with deep inference, in contrast to traditional proof-theoretic systems, inference rules can be applied at any depth inside logical expressions. Deep applicability of inference rules provides a rich combinatorial analysis of proofs. Deep inference also makes it possible to design deductive systems that are tailored for computer science applications and otherwise provably not expressible. By applying the inference rules deeply, logical expressions can be manipulated starting from their sub-expressions. This way, we can simulate analytic proofs in traditional deductive formalisms. Furthermore, we can also construct much shorter analytic proofs than in these other formalisms. However, deep applicability of inference rules causes much greater nondeterminism in proof construction. This thesis attacks the problem of dealing with nondeterminism in proof search while preserving the shorter proofs that are available thanks to deep inference. By redesigning the deep inference deductive systems, some redundant applications of the inference rules are prevented. By introducing a new technique which reduces nondeterminism, it becomes possible to obtain a more immediate access to shorter proofs, without breaking certain proof theoretical properties such as cutelimination. Different implementations presented in this thesis allow to perform experiments on the techniques that we developed and observe the performance improvements. Within a computation-as-proof-search perspective, we use deepinference deductive systems to develop a common proof-theoretic language to the two fields of planning and concurrency.
|
22 |
Building environment rule and analysis (BERA) language and its application for evaluating building circulation and spatial programLee, Jin Kook 18 January 2011 (has links)
This study aims to design and implement a domain-specific computer programming language: the Building Environment Rule and Analysis (BERA) Language. As a result of the growing area of Building Information Modeling (BIM), there has been a need to develop highly customized domain-specific programming languages for handling issues in building models in the architecture, engineering and construction (AEC) industry. The BERA Language attempts to deal with building information models in an intuitive way in order to define and analyze rules in design stages. The application of the BERA Language aims to provide efficiency in defining, analyzing and checking rules. Specific example applications implemented in this dissertation are on the evaluation of two key aspects: building circulation and spatial programming.
The objective of this study is to accomplish an effectiveness and ease of use without precise knowledge of general-purpose languages that are conventionally used in BIM software development. To achieve the goal, this study proposes an abstraction of the universe of discourse - it is the BERA Object Model (BOM). It is a human-centered abstraction of complex state of building models rather than the computation-oriented abstraction. By using BOM, users can enjoy the ease of use and portability of BIM data, rather than complex and platform-dependent data structures. This study also has reviewed and demonstrated its potential for extensibility of BOM. Not only its lateral extensions such as structural building elements, but also the vertical extensions such as additional properties for existing BOM objects are good examples. In current BERA Language Tool, many computed and derived properties/relations have been proposed and implemented, as well as some basic data directly from the given building model.
Target users of the BERA Language are domain experts such as architects, designers, reviewers, owners, managers, students, etc., rather than BIM software developers. It means that the people who are interested in the building environment rule and analysis are the potential users. The BERA Language Tool comprises many libraries to alleviate common but unnecessary problems and limitations that are encountered when users attempt to analyze and evaluate building models using commercially available tools. Combined with other libraries which populate rich and domain-specific datasets for certain purposes, the BERA Language will be fairly versatile to define rules and analyze various building environmental conditions.
|
23 |
Nástroj na testování síťových aplikací / A Tool for Testing Network ApplicationsHornický, Pavol January 2012 (has links)
This master thesis addresses the issue of software testing. It discusses different types and forms of testing such as white-box testing, black-box testing, unit testing, integration testing and regression testing. Further it deals with the specific problems of testing network applications and automation of the testing process. To solve these issues, the thesis presents a language based on XML for describing testing cases. The following chapter describes the design of this language interpreter. The thesis also deals with problems occurring during implementation phase of similar tools and their possible solutions. Functionality demonstration of designed tool helped to discover an error in product of AVG Technologies CZ, s.r.o..
|
24 |
Improvements of the syntax of the query language DQL / Förbättringar i syntax för query språket DQLDiep, Mikael, Cheimonettos, Anestis January 2023 (has links)
This thesis focuses on improving the syntax of a query language named DQL(Dynamic Query Language) in order to enhance the user experience and productivity of its users. The study investigates the original state of the query language and identifies areas for improvement in terms of intuitiveness, efficiency, and consistency. Through an extensive review of existing literature and case studies, the thesis develops a set of guidelines for designing intuitive query languages that minimise the cognitive load for users. The thesis also proposes several modifications to the syntax of DQL that aim to simplify the structure and improve the readability of queries. Finally, the thesis evaluates the effectiveness of the proposed modifications through semi-structured interviews to compare the original syntax with the proposed new one.
|
25 |
Performance-Aware Code Size Optimization of Generic Functions through Automatic Implementation of Dynamic Dispatch / Prestandamedveten kodstorleksoptimering av generiska funktioner genom automatisk tillämpning av dynamic dispatchHärnqvist, Ivar January 2022 (has links)
Monomorphization and dynamic dispatch are two common techniques for implementing polymorphism in statically typed programming languages. Function templates in C++ use the former technique to enable algorithms written as generic functions to be efficiently reused with multiple different data types by producing a separate function instantiation for each invocation that uses a unique permutation of argument types. This avoids the overhead of indirection associated with dynamic dispatch and allows the generated code of each instantiation to be optimized by the compiler for its specific concrete types, which typically yields great improvements in runtime performance over any dynamic approach. The disadvantage of this implementation, compared to the type-erased generics found in many other programming languages, is that careless over-use of templates with many different argument types can lead to an excessive amount of redundant code being generated for the same function. This increase in code size may increase the binary size of the final program and reduce the amount of useful code that can fit into the processor's instruction cache during execution, reducing code locality and thereby potentially reducing performance. Monomorphization can also increase compilation time due to the increase in generated code that needs to be compiled and optimized. This thesis presents a heuristic-based approach to generic programming that allows function templates to be automatically converted to use dynamic dispatch in scenarios where the resulting negative impact on runtime performance is predicted to be low. The thesis project includes the development of a proof of concept plugin for the Clang compiler frontend that can be used to compile existing C++ projects with the conversions applied. The design of a heuristic function for determining whether a given function template should use monomorphization or dynamic dispatch based on statically known metrics is proposed based on the results of an experiment. This heuristic is shown to achieve a small general improvement in program size across a set of open-source C++ projects when they are compiled using the plugin. The key findings from the experiment and from the development of the plugin are summarized with a general strategy for how the approach can be integrated into the design of future programming languages to promote more extensive use of generic programming in performance-sensitive code while avoiding regressions in program size and compilation time.
|
26 |
[en] A SURVEY OF FUNCTION VALUES IN IMPERATIVE PROGRAMMING LANGUAGES / [pt] UM LEVANTAMENTO SOBRE O SUPORTE A FUNÇÕES COMO VALORES EM LINGUAGENS IMPERATIVASLUIZ ROMARIO SANTANA RIOS 30 March 2020 (has links)
[pt] Se diz que uma linguagem de programação tem funções de primeira classe quando ela fornece a capacidade de manipular funções da mesma maneira que outros valores, isto é, guardar em variáveis, passar como parâmetros, etc.. Programar com funções de primeira classe abre o programadora novas formas de abstração e é o padrão em linguagens de programação funcionais. Porém, se tratando de linguagens imperativas (incluindo linguagens orientadas a objeto), cada linguagem tem semântica, propriedades e terminologia diferentes para funções—em grande parte graças a seu foco em mutabilidade, que as linguagens funcionais não têm. Para esclarecer essas diferenças, nós fizemos um levantamento sobre a especificação de funções como valores em linguagens de programação imperativas de várias disciplinas diferentes. Para cada linguagem, nós ilustramos, nos baseando em exemplos, as propriedades dos valores de funções nela,destacando onde ela difere de outras linguagens—tudo isso usando uma terminologia consistente em todas as linguagens. Nós esperamos oferecer uma referência para desenvolvedores compararem e contrastarem as diferentes versões de funções num só lugar. / [en] A programming language is said to have first-class functions when it provides the capability of manipulating functions in the same way as other values, i.e., storing in variables, passing as parameters, etc.. Programming with first-class functions opens the programmer to new forms of abstractions and it s the default in functional programming languages. However, in the realm of imperative languages (including object-oriented languages), each language has different semantics, properties, and terminology for functions—in great part, thanks to their focus on mutability, which isn t present in functional languages. To help shed light on these differences, we made a survey of the specifi-cation of function values in imperative programming languages from many different disciplines. For each language, we illustrate, based on examples,the properties of function values in it, highlighting where it differs from other languages—all this with a consistent terminology in all languages. We provide a reference that compares and contrasts different renditions offunctions in one single place and conclude that the design of functions in a language depends on the interaction of its features and constraints with its functions.
|
27 |
Modul pro sledování politiky sítě v datech o tocích / Module for Network Policy Monitoring in Flow DataPiecek, Adam January 2019 (has links)
The aim of this master's thesis is to design a language through which it would be possible to monitor a stream of network flows in order to detect network policy violations in the local network. An analysis of the languages used in the data stream management systems and an analysis of tasks submitted by the potential administrator were both carried out. The analysis specified resulted in the language design which represents pipelining consisting of filtering and aggregation. These operations can be clearly defined and managed within security rules. The result of this thesis also results in the Policer modul being integrated in the NEMEA system, which is able to apply the main commands of the proposed language. Finally, the module meets the requirements of the specified tasks and may be used for further development in the area of monitoring network policies.
|
Page generated in 0.0491 seconds