Implementing Dynamic Coarse & Fine Grained Taint Analysis For Rhino Javascript,
2017
San Jose State University
Implementing Dynamic Coarse & Fine Grained Taint Analysis For Rhino Javascript, Tejas Saoji
Master's Projects
Web application systems today are at great risk from attackers. They use methods like cross-site scripting, SQL injection, and format string attacks to exploit vulnerabilities in an application. Standard techniques like static analysis, code audits seem to be inadequate in successfully combating attacks like these. Both the techniques point out the vulnerabilities before an application is run. However, static analysis may result in a higher rate of false positives, and code audits are time-consuming and costly. Hence, there is a need for reliable detection mechanisms.
Dynamic taint analysis offers an alternate solution — it marks the incoming data from the …
Dynamic Information Flow Analysis In Ruby,
2017
San Jose State University
Dynamic Information Flow Analysis In Ruby, Vigneshwari Chandrasekaran
Master's Projects
With the rapid increase in usage of the internet and online applications, there is a huge demand for applications to handle data privacy and integrity. Applications are already complex with business logic; adding the data safety logic would make them more complicated. The more complex the code becomes, the more possibilities it opens for security-critical bugs. To solve this conundrum, we can push this data safety handling feature to the language level rather than the application level. With a secure language, developers can write their application without having to worry about data security.
This project introduces dynamic information flow analysis …
Library For Writing Contracts For Java Programs Using Prolog,
2017
San Jose State University
Library For Writing Contracts For Java Programs Using Prolog, Yogesh Dixit
Master's Projects
Today many large and complex software systems are being developed in Java. Although, software always has bugs, it is very important that these developed systems are more reliable despite these bugs.
One way that we can help achieve this is the Design by Contract (DbC) paradigm, which was first introduced by Bertrand Meyer, the creator of Eiffel. The concept of DbC was introduced for software developers so that they can produce more reliable software systems with a little extra cost. Using programming contracts allows developer to specify details such as input conditions and expected output conditions. Doing this makes it …
Automated Refactoring Of Legacy Java Software To Default Methods,
2017
CUNY Hunter College
Automated Refactoring Of Legacy Java Software To Default Methods, Raffi Khatchadourian, Hidehiko Masuhara
Publications and Research
Java 8 introduces enhanced interfaces, allowing for default (instance) methods that implementers will inherit if none are provided [3]. Default methods can be used [2] as a replacement of the skeletal implementation pattern [1], which creates abstract skeletal implementation classes that implementers extend. Migrating legacy code using the skeletal implementation pattern to instead use default methods can require significant manual effort due to subtle language and semantic restrictions. It requires preserving typecorrectness by analyzing complex type hierarchies, resolving issues arising from multiple inheritance, reconciling differences between class and interface methods, and ensuring tie-breakers with overriding class methods do not alter …
Comparing Tensorflow Deep Learning Performance Using Cpus, Gpus, Local Pcs And Cloud,
2017
Pace University
Comparing Tensorflow Deep Learning Performance Using Cpus, Gpus, Local Pcs And Cloud, John Lawrence, Jonas Malmsten, Andrey Rybka, Daniel A. Sabol, Ken Triplin
Publications and Research
Deep learning is a very computational intensive task. Traditionally GPUs have been used to speed-up computations by several orders of magnitude. TensorFlow is a deep learning framework designed to improve performance further by running on multiple nodes in a distributed system. While TensorFlow has only been available for a little over a year, it has quickly become the most popular open source machine learning project on GitHub. The open source version of TensorFlow was originally only capable of running on a single node while Google’s proprietary version only was capable of leveraging distributed systems. This has now changed. In this …
Proactive And Reactive Strategies To Handle Surges In Urban Crowds,
2017
Singapore Management University
Proactive And Reactive Strategies To Handle Surges In Urban Crowds, Jiali Du
Dissertations and Theses Collection
Most urban infrastructures are built to cater a planned capacity, yet surges in usage do happen in times (can be either expected or unexpected), and this has long been a major challenge for urban planner. In this thesis, I propose to study approaches handle surges in urban crowd movement. In particular, the surges in demand studied are limited to situations where a large crowd of commuters/visitors gather in a small vicinity, and I am concerned with their movements both within the vicinity and out of the vicinity (the egress from the vicinity). Significant crowd build-ups and congestions can be observed …
Tango: A Spanish-Based Programming Language,
2017
Butler University
Tango: A Spanish-Based Programming Language, Ashley M. Zegiestowsky
Butler Journal of Undergraduate Research
The first part of this article deals with the creation of my own Spanish-based programming language, Tango, using Spanish key words (instead of English key words). The second part 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. This article begins with a description of the specific goals achieved in the Tango language, an explanation and brief examples of the Tango Grammar, a high-level overview of the compiler design and data structures used, and concludes with …
Experiences With Scala Across The College-Level Curriculum,
2017
Loyola University Chicago
Experiences With Scala Across The College-Level Curriculum, Konstantin Läufer, George K. Thiruvathukal, Mark C. Lewis
Emerging Technologies Laboratory
Various hybrid-functional languages, designed to balance compile-time error detection, conciseness, and performance, have emerged. Scala, e.g., is interoperable with Java and has become an early leader in adoption, especially in the start-up and open-source spaces.
As educators, we have recognized Scala’s value as a teaching language across the CS curriculum. In CS1, the read-eval-print loop and simple, uniform syntax aid programming in the small. In CS2, higher-order methods allow concise, efficient manipulation of collections. In a programming languages course, advanced constructs facilitate the separation of concerns, program representation and interpretation, and concurrent programming. In advanced applied courses, language mechanisms and …
Cst1101–Problem Solving With Computer Programming, Syllabus,
2017
CUNY New York City College of Technology
Cst1101–Problem Solving With Computer Programming, Syllabus, Elena Filatova
Open Educational Resources
No abstract provided.
Clustering Classes In Packages For Program Comprehension,
2017
Yangzhou University
Clustering Classes In Packages For Program Comprehension, Xiaobing Sun, Xiangyue Liu, Bin Li, Bixin Li, David Lo, Lingzhi Liao
Research Collection School Of Computing and Information Systems
During software maintenance and evolution, one of the important tasks faced by developers is to understand a system quickly and accurately. With the increasing size and complexity of an evolving system, program comprehension becomes an increasingly difficult activity. Given a target system for comprehension, developers may first focus on the package comprehension. The packages in the system are of different sizes. For small-sized packages in the system, developers can easily comprehend them. However, for large-sized packages, they are difficult to understand. In this article, we focus on understanding these large-sized packages and propose a novel program comprehension approach for large-sized …
A Dynamic Programming Approach For Quickly Estimating Large Network-Based Mev Models,
2017
Singapore Management University
A Dynamic Programming Approach For Quickly Estimating Large Network-Based Mev Models, Tien Mai, Emma Frejinger, Mogens Fosgereau, Fabian Bastin
Research Collection School Of Computing and Information Systems
We propose a way to estimate a family of static Multivariate Extreme Value (MEV) models with large choice sets in short computational time. The resulting model is also straightforward and fast to use for prediction. Following Daly and Bierlaire (2006), the correlation structure is defined by a rooted, directed graph where each node without successor is an alternative. We formulate a family of MEV models as dynamic discrete choice models on graphs of correlation structures and show that the dynamic models are consistent with MEV theory and generalize the network MEV model (Daly and Bierlaire, 2006). Moreover, we show that …
Empirical Study Of Usage And Performance Of Java Collections,
2017
Singapore Management University
Empirical Study Of Usage And Performance Of Java Collections, Diego Costa, Artur Andrzejak, Janos Seboek, David Lo
Research Collection School Of Computing and Information Systems
Collection data structures have a major impact on the performance of applications, especially in languages such as Java, C#, or C++. This requires a developer to select an appropriate collection from a large set of possibilities, including different abstractions (e.g. list, map, set, queue), and multiple implementations. In Java, the default implementation of collections is provided by the standard Java Collection Framework (JCF). However, there exist a large variety of less known third-party collection libraries which can provide substantial performance benefits with minimal code changes.
Optimizing Campus Mobility With A Focus On Sustainability: A Graph Theory Approach To Intra-Campus Transportation Networks,
2017
Quinn Nelson
Optimizing Campus Mobility With A Focus On Sustainability: A Graph Theory Approach To Intra-Campus Transportation Networks, Quinn M. Nelson
UNO Student Research and Creative Activity Fair
The idea of public transportation is supported by most in theory but often heavily criticized by users when put into application. There are common tensions that are related to public transportation, as described by frequent users: unreliable, too crowded, and slow. The University of Nebraska-Omaha (UNO) is a growing metropolitan institution that uses a shuttle system to transport students among their three campuses daily. As of 2015, the current total student enrollment is approximately 16,000; UNO plans to enroll 20,000 students by 2020. The expected student growth is also reflected by the current construction of new buildings and expansion of …
Gpumap: A Transparently Gpu-Accelerated Map Function,
2017
California Polytechnic State University, San Luis Obispo
Gpumap: A Transparently Gpu-Accelerated Map Function, Ivan Pachev
Master's Theses
As GPGPU computing becomes more popular, it will be used to tackle a wider range of problems. However, due to the current state of GPGPU programming, programmers are typically required to be familiar with the architecture of the GPU in order to effectively program it. Fortunately, there are software packages that attempt to simplify GPGPU programming in higher-level languages such as Java and Python. However, these software packages do not attempt to abstract the GPU-acceleration process completely. Instead, they require programmers to be somewhat familiar with the traditional GPGPU programming model which involves some understanding of GPU threads and kernels. …
Pop-Up Java: An Augmented Reality Mobile Game To Teach Java,
2017
Columbus State University
Pop-Up Java: An Augmented Reality Mobile Game To Teach Java, Richard Myers
Georgia Undergraduate Research Conference
As computers become more and more ubiquitous, it becomes increasingly important and prevalent to teach coding. Coding builds important life skills such as organization, higher order thinking, self-esteem, socialization and teamwork, among many others. However, learning the skills necessary to design and create an efficient program from scratch takes a lot of practice that can often be confusing and frustrating to newcomers.
There are a large number of programming languages in the world, each with their own merits. The TIOBE Programming Community Index calculates the popularity of programming languages by tallying search queries on major search engines, and shows that …
Levity Polymorphism (Extended Version),
2017
Bryn Mawr College
Levity Polymorphism (Extended Version), Richard A. Eisenberg, Simon Peyton Jones
Computer Science Faculty Research and Scholarship
Parametric polymorphism is one of the lynchpins of modern typed programming. A function that can work seamlessly over a variety of types simplifies code, helps to avoid errors introduced through duplication, and and is easy to maintain. However, polymorphism comes at a very real cost, one that each language with support for polymorphism has paid in different ways. This paper describes this cost, proposes a theoretically simple way to reason about the cost—that kinds, not types, are calling conventions—and details one approach to dealing with polymorphism that works in the context of a language, Haskell, that prizes both efficiency …
Grace's Inheritance,
2017
Victoria University of Wellington
Grace's Inheritance, James Noble, Andrew P. Black, Kim B. Bruce, Michael Homer, Timothy Jones
Computer Science Faculty Publications and Presentations
This article is an apologia for the design of inheritance in the Grace educational programming language: it explains how the design of Grace’s inheritance draws from inheritance mechanisms in predecessor languages, and defends that design as the best of the available alternatives. For simplicity, Grace objects are generated from object constructors, like those of Emerald, Lua, and Javascript; for familiarity, the language also provides classes and inheritance, like Simula, Smalltalk and Java. The design question we address is whether or not object constructors can provide an inheritance semantics similar to classes.
A Specification For Dependent Types In Haskell,
2017
University of Pennsylvania
A Specification For Dependent Types In Haskell, Stephanie Weirich, Antoine Voizard, Pedro Henrique Azevedo De Amorim, Richard A. Eisenberg
Computer Science Faculty Research and Scholarship
We propose a core semantics for Dependent Haskell, an extension of Haskell with full-spectrum dependent types. Our semantics consists of two related languages. The first is a Curry-style dependently-typed language with nontermination, irrelevant arguments, and equality abstraction. The second, inspired by the Glasgow Haskell Compiler’s core language FC, is its explicitly-typed analogue, suitable for implementation in GHC. All of our results -- chiefly, type safety, along with theorems that relate these two languages -- have been formalized using the Coq proof assistant. Because our work is backwards compatible with Haskell, our type safety proof holds in the presence of nonterminating …
Constrained Type Families,
2017
University of Kansas
Constrained Type Families, J. Garrett Morris, Richard A. Eisenberg
Computer Science Faculty Research and Scholarship
We present an approach to support partiality in type-level computation without compromising expressiveness or type safety. Existing frameworks for type-level computation either require totality or implicitly assume it. For example, type families in Haskell provide a powerful, modular means of defining type-level computation. However, their current design implicitly assumes that type families are total, introducing nonsensical types and significantly complicating the metatheory of type families and their extensions. We propose an alternative design, using qualified types to pair type-level computations with predicates that capture their domains. Our approach naturally captures the intuitive partiality of type families, simplifying their metatheory. As …
A Physics-Based Approach To Modeling Wildland Fire Spread Through Porous Fuel Beds,
2017
University of Kentucky
A Physics-Based Approach To Modeling Wildland Fire Spread Through Porous Fuel Beds, Tingting Tang
Theses and Dissertations--Mechanical and Aerospace Engineering
Wildfires are becoming increasingly erratic nowadays at least in part because of climate change. CFD (computational fluid dynamics)-based models with the potential of simulating extreme behaviors are gaining increasing attention as a means to predict such behavior in order to aid firefighting efforts. This dissertation describes a wildfire model based on the current understanding of wildfire physics. The model includes physics of turbulence, inhomogeneous porous fuel beds, heat release, ignition, and firebrands. A discrete dynamical system for flow in porous media is derived and incorporated into the subgrid-scale model for synthetic-velocity large-eddy simulation (LES), and a general porosity-permeability model is …
