47 research outputs found

    Datalogger Sequence Execution Engine (DSQEE)

    Get PDF
    The PolySat Research Group accepts projects from several companies that wish to use a CubeSat for some experiment. One of the projects called Intelligent Payload Experiment, or IPEX, needs software to interact with out system avionics. One of these software will be datalogger, which will be augmented from its original datalogging scheme to support sequentially execution of commands/algorithms that our client, Jet Propulsion Laboratory, or JPL, need. My part of the project explains the software design decisions behind datalogger

    Jparsec - a parser combinator for Javascript

    Get PDF
    Parser combinators have been a popular parsing approach in recent years. Compared with traditional parsers, a parser combinator has both readability and maintenance advantages. This project aims to construct a lightweight parser construct library for Javascript called Jparsec. Based on the modular nature of a parser combinator, the implementation uses higher-order functions. JavaScript provides a friendly and simple way to use higher-order functions, so the main construction method of this project will use JavaScript\u27s lambda functions. In practical applications, a parser combinator is mainly used as a tool, such as parsing JSON files. In order to verify the utility of parser combinators, this project uses a parser combinator to parse a partial Lua grammar. Lua is a widely used programming language, serving as a good test case for my parser combinator

    Parallel parsing made practical

    Get PDF
    The property of local parsability allows to parse inputs through inspecting only a bounded-length string around the current token. This in turn enables the construction of a scalable, data-parallel parsing algorithm, which is presented in this work. Such an algorithm is easily amenable to be automatically generated via a parser generator tool, which was realized, and is also presented in the following. Furthermore, to complete the framework of a parallel input analysis, a parallel scanner can also combined with the parser. To prove the practicality of a parallel lexing and parsing approach, we report the results of the adaptation of JSON and Lua to a form fit for parallel parsing (i.e. an operator-precedence grammar) through simple grammar changes and scanning transformations. The approach is validated with performance figures from both high performance and embedded multicore platforms, obtained analyzing real-world inputs as a test-bench. The results show that our approach matches or dominates the performances of production-grade LR parsers in sequential execution, and achieves significant speedups and good scaling on multi-core machines. The work is concluded by a broad and critical survey of the past work on parallel parsing and future directions on the integration with semantic analysis and incremental parsing

    Monadic parser combinators

    Get PDF
    In functional programming, a popular approach to building recursive descent parsers is to model parsers as functions, and to define higher-order functions (or combinators) that implement grammar constructions such as sequencing, choice, and repetition. Such parsers form an instance of a monad, an algebraic structure from mathematics that has proved useful for addressing a number of computational problems. The purpose of this report is to provide a step-by-step tutorial on the monadic approach to building functional parsers, and to explain some of the benefits that result from exploiting monads. No prior knowledge of parser combinators or of monads is assumed. Indeed, this report can also be viewed as a first introduction to the use of monads in programming

    AT-GIS: highly parallel spatial query processing with associative transducers

    Get PDF
    Users in many domains, including urban planning, transportation, and environmental science want to execute analytical queries over continuously updated spatial datasets. Current solutions for largescale spatial query processing either rely on extensions to RDBMS, which entails expensive loading and indexing phases when the data changes, or distributed map/reduce frameworks, running on resource-hungry compute clusters. Both solutions struggle with the sequential bottleneck of parsing complex, hierarchical spatial data formats, which frequently dominates query execution time. Our goal is to fully exploit the parallelism offered by modern multicore CPUs for parsing and query execution, thus providing the performance of a cluster with the resources of a single machine. We describe AT-GIS, a highly-parallel spatial query processing system that scales linearly to a large number of CPU cores. ATGIS integrates the parsing and querying of spatial data using a new computational abstraction called associative transducers(ATs). ATs can form a single data-parallel pipeline for computation without requiring the spatial input data to be split into logically independent blocks. Using ATs, AT-GIS can execute, in parallel, spatial query operators on the raw input data in multiple formats, without any pre-processing. On a single 64-core machine, AT-GIS provides 3× the performance of an 8-node Hadoop cluster with 192 cores for containment queries, and 10× for aggregation queries

    IntelliSense Integration for Coq Theorem Prover

    Get PDF
    Nástroje pro automatické (interaktivní) počítačové dokazování vět se používají na vytváření a ověřování formálních důkazů. Během posledního desetiletí se tyto nástroje postupně vyvíjely a začaly být čím dál častěji používány. Vývojová prostředí používaná pro tvorbu těchto důkazů však bohužel ve vývoji zaostávají a proto neposkytují takové možnosti, jako jiná modernější prostředí, se kterými se v dnešní době můžeme běžně setkat. Cílem této práce je zlepšit vývojové nástroje pro dokazování vět a to konkrétně nástroj Coq. Ten integrujeme do moderního vývojového prostředí a tím získáme výhody novodobých nástrojů i při tvorbě důkazů. Takovéto vylepšení by mohlo zvýšit povědomí o počítačově asistovaném dokazování a tudíž vést k usnadnění formální verifikace a ke zvýšení kvality jak hardwaru, tak softwaru.Computer-assisted (interactive) theorem provers are software tools that help with the development of formal proofs. While theorem provers are constantly evolving and have started to be used more often over the last decade, the development tools used for creating computer-assisted proofs have not improved as much and they do not offer features that are common to other modern development tools. This thesis aims to improve the state of the art of development tools for interactive theorem provers, namely Coq. We integrate the Coq interactive theorem prover into an existing modern development environment and bring the benefits of modern tools to interactive proving. Improving the development tools could help popularize computer-assisted theorem proving and thus improve the quality of software by simplifying formal verification and by allowing development of verified hardware.Department of Software EngineeringKatedra softwarového inženýrstvíFaculty of Mathematics and PhysicsMatematicko-fyzikální fakult

    Monadic parser combinators

    Get PDF
    In functional programming, a popular approach to building recursive descent parsers is to model parsers as functions, and to define higher-order functions (or combinators) that implement grammar constructions such as sequencing, choice, and repetition. Such parsers form an instance of a monad, an algebraic structure from mathematics that has proved useful for addressing a number of computational problems. The purpose of this report is to provide a step-by-step tutorial on the monadic approach to building functional parsers, and to explain some of the benefits that result from exploiting monads. No prior knowledge of parser combinators or of monads is assumed. Indeed, this report can also be viewed as a first introduction to the use of monads in programming

    Design of a Robotics DSL

    Get PDF
    Our MQP focused on building a domain specific language to be used with Neuron Robotics\u27 flagship product, the DyIO. Our DSL, Fez, is developed in Ruby and ANTLR and interacts with Neuron Robotics Java libraries as a fa231ade. We define a class hierarchy of the DyIO, abstractions for common devices that can be connected, and functionality for such devices. We develop a grammar and parser for our DSL which translates Fez to Ruby and execute the resulting code interactively. Fez is a fully functional language that properly translates all supported statements into Ruby. It was designed to somewhat mirror writing English as opposed to writing in a programming language. The main interface to Fez is a Read-Eval-Print-Loop (REPL) and it is run in a terminal window

    A Web browser and editor

    Get PDF
    Thesis (M. Eng.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 1996.Includes bibliographical references (leaves 60-61).by Jason A. Wilson.M.Eng
    corecore