Secure Declassification In Faceted Javascript,
2016
San Jose State University
Secure Declassification In Faceted Javascript, Tam Wing
Master's Projects
Information leaks currently represent a major security vulnerability. Malicious code, when injected into a trusted environment and executed in the context of the victim’s privileges, often results in the loss of sensitive information. To address this security issue, this paper focuses on the idea of information flow control using faceted execution [3]. This mechanism allows the interpreter to efficiently keep track of variables across multiple security levels, achieving termination-insensitive non-interference (TINI). With TINI, a program can only leak one bit of data, caused by the termination of a program. One key benefit of having faceted execution is that flow policy …
Taint And Information Flow Analysis Using Sweet.Js Macros,
2016
San Jose State University
Taint And Information Flow Analysis Using Sweet.Js Macros, Prakasam Kannan
Master's Projects
JavaScript has been the primary language for application development in browsers and with the advent of JIT compilers, it is increasingly becoming popular on server side development as well. However, JavaScript suffers from vulnerabilities like cross site scripting and malicious advertisement code on the the client side and on the server side from SQL injection.
In this paper, we present a dynamic approach to efficiently track information flow and taint detection to aid in mitigation and prevention of such attacks using JavaScript based hygienic macros. We use Sweet.js and object proxies to override built-in JavaScript operators to track information flow …
Sign & Share: Full-Stack International Video Sharing Website,
2016
Gallaudet University
Sign & Share: Full-Stack International Video Sharing Website, Shuxu Tian
Undergraduate University Honors Capstones
Inspired by VL2 bilingual story apps that focus on American Sign Language and English, this project provides a new application for sharing multi-lingual signed and written stories to a worldwide audience. VL2 story apps include only ASL and English, and are for purchase; VL2 also sells the code to develop stories in other languages, but the code requires technical expertise to use. My new app uses a special set of tools to allow sharing stories in any signed language and written forms of spoken languages without cost and without the need for technical expertise. Known as Sign and Share, this …
Domain-Specific Cross-Language Relevant Question Retrieval,
2016
Singapore Management University
Domain-Specific Cross-Language Relevant Question Retrieval, Bowen Xu, Zhenchang Xing, Xin Xia, David Lo, Qingye Wang, Shanping Li
Research Collection School Of Computing and Information Systems
In software development process, developers often seek solutions to the technical problems they encounter by searching relevant questions on Q&A sites. When developers fail to find solutions on Q&A sites in their native language (e.g., Chinese), they could translate their query and search on the Q&A sites in another language (e.g., English). However, developers who are non-native English speakers often are not comfortable to ask or search questions in English, as they do not know the proper translation of the Chinese technical words into the English technical words. Furthermore, the process of manually formulating cross-language queries and determining the weight …
Software Improvements To Parint, A Parallel Integration Software Package,
2016
Western Michigan University
Software Improvements To Parint, A Parallel Integration Software Package, Lawrence Cuneaz
Honors Theses
The best software is easy to configure and compile, is expandable and is well tested. Development of the ParInt software package for parallel integration stopped a number of years ago. When handed the software, parts of the package no longer configured or compiled consistently. Furthermore it relied on one random number generator and had no functional testing. The team tuned the auto configuration so that the program would configure and build on current systems, created expandable functionality to add new random number generators and created two functional test packs. Now ParInt can be developed with confidence knowing that it compiles …
Make A Twitter Bot In Python: Iterative Code Examples,
2016
CUNY John Jay College
Make A Twitter Bot In Python: Iterative Code Examples, Robin Camille Davis, Mark E. Eaton
Publications and Research
A tutorial based upon the LACUNY Emerging Technologies Committee’s “Build Your Own Twitter Bot” day in December 2015, which was billed as a gentle introduction to programming in Python.
A Graph-Based Semantics Workbench For Concurrent Asynchronous Programs,
2016
Singapore Management University
A Graph-Based Semantics Workbench For Concurrent Asynchronous Programs, Claudio Corrodi, Alexander Heußner, Christopher M. Poskitt
Research Collection School Of Computing and Information Systems
A number of novel programming languages and libraries have been proposed that offer simpler-to-use models of concurrency than threads. It is challenging, however, to devise execution models that successfully realise their abstractions without forfeiting performance or introducing unintended behaviours. This is exemplified by Scoop—a concurrent object-oriented message-passing language—which has seen multiple semantics proposed and implemented over its evolution. We propose a “semantics workbench” with fully and semi-automatic tools for Scoop, that can be used to analyse and compare programs with respect to different execution models. We demonstrate its use in checking the consistency of semantics by applying it to a …
Front Matter: Proceedings Of The Maics 2016 Conference,
2016
University of Dayton
Front Matter: Proceedings Of The Maics 2016 Conference, University Of Dayton
Content presented at the MAICS conference
Front matter contains:
- A list of program chairs and committee members
- Foreword to the proceedings by James P. Buckley, conference chair; Saverio Perugini, general chair
Editors: Phu H. Phung, University of Dayton; Ju Shen, University of Dayton; Michael Glass, Valparaiso University
Cracking The Code Of Success: The Coding Academy,
2016
DePaul University
Cracking The Code Of Success: The Coding Academy
DePaul Magazine
BLUE1647 is a nonprofit technology and entrepreneurship innovation center—a type of tech incubator, but with a difference. The seven-day-a-week coworking space welcomes engineers and developers, but also provides technology education to young people and college students through strategic partnerships with DePaul, Chicago Public Schools and other organizations. BLUE1647 offers MBA social enterprise and undergraduate entrepreneurship students an experiential learning project called the Coding Academy, a tuition-based program offered on a full-scholarship basis to DePaul student cohorts.
A Reflection On Types,
2016
Bryn Mawr College
A Reflection On Types, Simon. Peyton Jones, Stephanie Weirich, Richard A. Eisenberg, Dimitrios Vytiniotis
Computer Science Faculty Research and Scholarship
The ability to perform type tests at runtime blurs the line between statically-typed and dynamically-checked languages. Recent developments in Haskell’s type system allow even programs that use reflection to themselves be statically typed, using a type-indexed runtime representation of types called \𝗍𝖾𝗑𝗍𝗂𝗍{𝖳𝗒𝗉𝖾𝖱𝖾𝗉}\textit{TypeRep}. As a result we can build dynamic types as an ordinary, statically-typed library, on top of \𝗍𝖾𝗑𝗍𝗂𝗍{𝖳𝗒𝗉𝖾𝖱𝖾𝗉}\textit{TypeRep} in an open-world context.
Towards Improving Interface Modularity In Legacy Java Software Through Automated Refactoring,
2016
CUNY New York City College of Technology
Towards Improving Interface Modularity In Legacy Java Software Through Automated Refactoring, Raffi T. Khatchadourian, Olivia Moore, Hidehiko Masuhara
Publications and Research
The skeletal implementation pattern is a software design pattern consisting of defining an abstract class that provides a partial interface implementation. However, since Java allows only single class inheritance, if implementers decide to extend a skeletal implementation, they will not be allowed to extend any other class. Also, discovering the skeletal implementation may require a global analysis. Java 8 enhanced interfaces alleviate these problems by allowing interfaces to contain (default) method implementations, which implementers inherit. Java classes are then free to extend a different class, and a separate abstract class is no longer needed; developers considering implementing an interface need …
Towards Improving Interface Modularity In Legacy Java Software Through Automated Refactoring,
2016
CUNY Hunter College
Towards Improving Interface Modularity In Legacy Java Software Through Automated Refactoring, Raffi Khatchadourian, Olivia Moore, Hidehiko Masuhara
Publications and Research
The skeletal implementation pattern is a software design pattern that defines an abstract class that provides a partial interface implementation. However, since Java allows only single class inheritance, if implementers decide to extend a skeletal implementation, they will not be allowed to extend any other class. Also, discovering the skeletal implementation may require a global analysis. Java 8 enhanced interfaces alleviate these problems by enabling interfaces to contain (default) method implementations, which implementers inherit. Java classes are then free to extend a different class, and a separate abstract class is no longer needed; developers considering implementing an interface need only …
Tango: A Spanish-Based Programming Language,
2016
Butler University
Tango: A Spanish-Based Programming Language, Ashley Zegiestowsky
Undergraduate Honors Thesis Collection
The purpose of this thesis is a two-part project. The first part of the project deals with the creation of my own Spanish-based programming language, Tango, using Spanish key words (instead of English key words). The second part of the project relates to the design and implementation of a compiler that follows the grammar rules outlined in the Tango language in order to successfully lexically analyze, parse, semantically analyze, and generate code for Tango. The structure of this thesis begins with a description of the specific goals achieved in the Tango language, an explanation and brief examples of the Tango …
Visible Type Application,
2016
Bryn Mawr College
Visible Type Application, Richard A. Eisenberg, Stephanie Weirich, Hamidhasan G. Ahmed
Computer Science Faculty Research and Scholarship
The Hindley-Milner HM type system automatically infers the types at which polymorphic functions are used. In HM, the inferred types are unambiguous, and every expression has a principal type. Type annotations make HM compatible with extensions where complete type inference is impossible, such as higher-rank polymorphism and type-level functions. However, programmers cannot use annotations to explicitly provide type arguments to polymorphic functions, as HM requires type instantiations to be inferred.
We describe an extension to HM that allows visible type application. Our extension requires a novel type inference algorithm, yet its declarative presentation is a simple extension to HM. We …
Safe Zero-Cost Coercions For Haskell,
2016
Bryn Mawr College
Safe Zero-Cost Coercions For Haskell, Joachim Breitner, Richard A. Eisenberg, Simon Peyton Jones, Stephanie Weirich
Computer Science Faculty Research and Scholarship
Generative type abstractions – present in Haskell, OCaml, and other languages – are useful concepts to help prevent programmer errors. They serve to create new types that are distinct at compile time but share a run-time representation with some base type. We present a new mechanism that allows for zero-cost conversions between generative type abstractions and their representations, even when such types are deeply nested. We prove type safety in the presence of these conversions and have implemented our work in GHC.
Dependent Types In Haskell: Theory And Practice,
2016
Bryn Mawr College
Dependent Types In Haskell: Theory And Practice, Richard A. Eisenberg
Computer Science Faculty Research and Scholarship
Haskell, as implemented in the Glasgow Haskell Compiler (GHC), has been adding new type-level programming features for some time. Many of these features—generalized algebraic datatypes (GADTs), type families, kind polymorphism, and promoted datatypes—have brought Haskell to the doorstep of dependent types. Many dependently typed programs can even currently be encoded, but often the constructions are painful.
In this dissertation, I describe Dependent Haskell, which supports full dependent types via a backward-compatible extension to today’s Haskell. An important contribution of this work is an implementation, in GHC, of a portion of Dependent Haskell, with the rest to follow. The features I …
Data Persistence In Eiffel,
2016
University of Kentucky
Data Persistence In Eiffel, Jimmy J. Johnson
Theses and Dissertations--Computer Science
This dissertation describes an extension to the Eiffel programming language that provides automatic object persistence (the ability of programs to store objects and later recreate those objects in a subsequent execution of a program). The mechanism is orthogonal to other aspects of the Eiffel language. The mechanism serves four main purposes: 1) it gives Eiffel programmers a needed service, filling a gap between serialization, which provides limited persistence functions and database-mapping, which is cumbersome to use; 2) it greatly reduces the coding burden incurred by the programmer when objects must persist, allowing the programmer to focus instead on the business …
Srcmx: A Gui Application For Srcml,
2016
The University of Akron
Srcmx: A Gui Application For Srcml, Brian Kovacs
Williams Honors College, Honors Research Projects
srcMX is a GUI application that utilizes the srcML command-line tool to convert and display source code using the srcML format. The goal is for srcMX to promote the manipulation and exploration of source code using srcML. I also hope that the user-friendly nature inherent to GUI applications allows srcMX to introduce a larger audience to the many features offered by srcML. The application is written in C++ using the Qt and Qt Quick frameworks.
Automated Refactoring Of Legacy Java Software To Enumerated Types,
2016
CUNY Hunter College
Automated Refactoring Of Legacy Java Software To Enumerated Types, Raffi Khatchadourian
Publications and Research
Modern Java languages introduce several new features that offer significant improvements over older Java technology. In this article we consider the new enum construct, which provides language support for enumerated types. Prior to recent Java languages, programmers needed to employ various patterns (e.g., the weak enum pattern) to compensate for the absence of enumerated types in Java. Unfortunately, these compensation patterns lack several highly-desirable properties of the enum construct, most notably, type safety. We present a novel fully-automated approach for transforming legacy Java code to use the new enumeration construct. This semantics-preserving approach increases type safety, produces code that is …
Spest – A Tool For Specification-Based Testing,
2016
California Polytechnic State University, San Luis Obispo
Spest – A Tool For Specification-Based Testing, Corrigan Redford Johnson
Master's Theses
This thesis presents a tool for SPEcification based teSTing (SPEST). SPEST is designed to use well known practices for automated black-box testing to reduce the burden of testing on developers. The tool uses a simple formal specification language to generate highly-readable unit tests that embody best practices for thorough software testing. Because the specification language used to generate the assertions about the code can be compiled, it can also be used to ensure that documentation describing the code is maintained during development and refactoring.
The utility and effectiveness of SPEST were validated through several exper- iments conducted with students in …
