Open Access. Powered by Scholars. Published by Universities.®

Computer Sciences Commons™

Open Access. Powered by Scholars. Published by Universities.®

Programming Languages and Compilers

Institution
Keyword
Publication Year
Publication
Publication Type
File Type

Articles 1021 - 1050 of 1844

Full-Text Articles in Computer Sciences

Bug Characteristics In Blockchain Systems: A Large-Scale Empirical Study, Zhiyuan Wan, David Lo, Xin Xia, Liang Cai Jun 2017

Bug Characteristics In Blockchain Systems: A Large-Scale Empirical Study, Zhiyuan Wan, David Lo, Xin Xia, Liang Cai

Research Collection School Of Computing and Information Systems

Bugs severely hurt blockchain system dependability. A thorough understanding of blockchain bug characteristics is required to design effective tools for preventing, detecting and mitigating bugs. We perform an empirical study on bug characteristics in eight representative open source blockchain systems. First, we manually examine 1,108 bug reports to understand the nature of the reported bugs. Second, we leverage card sorting to label the bug reports, and obtain ten bug categories in blockchain systems. We further investigate the frequency distribution of bug categories across projects and programming languages. Finally, we study the relationship between bug categories and bug fixing time. The …


Cataloging Github Repositories, Abhishek Sharma, Ferdian Thung, Pavneet Singh Kochhar, Agus Sulistya, David Lo Jun 2017

Cataloging Github Repositories, Abhishek Sharma, Ferdian Thung, Pavneet Singh Kochhar, Agus Sulistya, David Lo

Research Collection School Of Computing and Information Systems

GitHub is one of the largest and most popular repository hosting service today, having about 14 million users and more than 54 million repositories as of March 2017. This makes it an excellent platform to find projects that developers are interested in exploring. GitHub showcases its most popular projects by cataloging them manually into categories such as DevOps tools, web application frameworks, and game engines. We propose that such cataloging should not be limited only to popular projects. We explore the possibility of developing such cataloging system by automatically extracting functionality descriptive text segments from readme files of GitHub repositories. …


Automated Refactoring Of Legacy Java Software To Default Methods, Raffi Khatchadourian, Hidehiko Masuhara May 2017

Automated Refactoring Of Legacy Java Software To Default Methods, Raffi Khatchadourian, Hidehiko Masuhara

Publications and Research

Java 8 default methods, which allow interfaces to contain (instance) method implementations, are useful for the skeletal implementation software design pattern. However, it is not easy to transform existing software to exploit default methods as it requires analyzing complex type hierarchies, resolving multiple implementation inheritance issues, reconciling differences between class and interface methods, and analyzing tie-breakers (dispatch precedence) with overriding class methods to preserve type-correctness and confirm semantics preservation. In this paper, we present an efficient, fully-automated, type constraint-based refactoring approach that assists developers in taking advantage of enhanced interfaces for their legacy Java software. The approach features an extensive …


Library For Writing Contracts For Java Programs Using Prolog, Yogesh Dixit May 2017

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 …


Dynamic Information Flow Analysis In Ruby, Vigneshwari Chandrasekaran May 2017

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 …


Policy-Agnostic Programming On The Client-Side, Kushal Palesha May 2017

Policy-Agnostic Programming On The Client-Side, Kushal Palesha

Master's Projects

Browser security has become a major concern especially due to web pages becoming more complex. These web applications handle a lot of information, including sensitive data that may be vulnerable to attacks like data exfiltration, cross-site scripting (XSS), etc. Most modern browsers have security mechanisms in place to prevent such attacks but they still fall short in preventing more advanced attacks like evolved variants of data exfiltration. Moreover, there is no standard that is followed to implement security into the browser.

A lot of research has been done in the field of information flow security that could prove to be …


Implementing Dynamic Coarse & Fine Grained Taint Analysis For Rhino Javascript, Tejas Saoji May 2017

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 …


Automated Refactoring Of Legacy Java Software To Default Methods, Raffi Khatchadourian, Hidehiko Masuhara May 2017

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, John Lawrence, Jonas Malmsten, Andrey Rybka, Daniel A. Sabol, Ken Triplin May 2017

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, Jiali Du May 2017

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, Ashley M. Zegiestowsky Apr 2017

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, Konstantin Läufer, George K. Thiruvathukal, Mark C. Lewis Apr 2017

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 …


A Dynamic Programming Approach For Quickly Estimating Large Network-Based Mev Models, Tien Mai, Emma Frejinger, Mogens Fosgereau, Fabian Bastin Apr 2017

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 …


Cst1101–Problem Solving With Computer Programming, Syllabus, Elena Filatova Apr 2017

Cst1101–Problem Solving With Computer Programming, Syllabus, Elena Filatova

Open Educational Resources

No abstract provided.


Empirical Study Of Usage And Performance Of Java Collections, Diego Costa, Artur Andrzejak, Janos Seboek, David Lo Apr 2017

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.


Clustering Classes In Packages For Program Comprehension, Xiaobing Sun, Xiangyue Liu, Bin Li, Bixin Li, David Lo, Lingzhi Liao Apr 2017

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 …


Optimizing Campus Mobility With A Focus On Sustainability: A Graph Theory Approach To Intra-Campus Transportation Networks, Quinn M. Nelson Mar 2017

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, Ivan Pachev Mar 2017

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, Richard Myers Jan 2017

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), Richard A. Eisenberg, Simon Peyton Jones Jan 2017

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, James Noble, Andrew P. Black, Kim B. Bruce, Michael Homer, Timothy Jones Jan 2017

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, Stephanie Weirich, Antoine Voizard, Pedro Henrique Azevedo De Amorim, Richard A. Eisenberg Jan 2017

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, J. Garrett Morris, Richard A. Eisenberg Jan 2017

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, Tingting Tang Jan 2017

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 …


Long And Short-Range Air Navigation On Spherical Earth, Nihad E. Daidzic Jan 2017

Long And Short-Range Air Navigation On Spherical Earth, Nihad E. Daidzic

International Journal of Aviation, Aeronautics, and Aerospace

Global range air navigation implies non-stop flight between any two airports on Earth. Such effort would require airplanes with the operational air range of at least 12,500 NM which is about 40-60% longer than anything existing in commercial air transport today. Air transportation economy requires flying shortest distance, which in the case of spherical Earth are Orthodrome arcs. Rhumb-line navigation has little practical use in long-range flights, but has been presented for historical reasons and for comparison. Database of about 50 major international airports from every corner of the world has been designed and used in testing and route validation. …


Visualizing Morphogenesis With The Processing Programming Language, Avik Patel, Amar Bains, Richard Millet, Tamira Elul Jan 2017

Visualizing Morphogenesis With The Processing Programming Language, Avik Patel, Amar Bains, Richard Millet, Tamira Elul

Faculty Publications & Research of the TUC College of Osteopathic Medicine

We used Processing, a visual artists’ programming language developed at MIT Media Lab, to simulate cellular mechanisms of morphogenesis – the generation of form and shape in embryonic tissues. Based on observations of in vivo time-lapse image sequences, we created animations of neural cell motility responsible for elongating the spinal cord, and of optic axon branching dynamics that establish primary visual connectivity. These visual models underscore the significance of the computational decomposition of cellular dynamics underlying morphogenesis.


Automated Refactoring Of Legacy Java Software To Default Methods, Raffi Khatchadourian, Hidehiko Masuhara Jan 2017

Automated Refactoring Of Legacy Java Software To Default Methods, Raffi Khatchadourian, Hidehiko Masuhara

Publications and Research

Java 8 default methods, which allow interfaces to contain (instance) method implementations, are useful for the skeletal implementation software design pattern. However, it is not easy to transform existing software to exploit default methods as it requires analyzing complex type hierarchies, resolving multiple implementation inheritance issues, reconciling differences between class and interface methods, and analyzing tie-breakers (dispatch precedence) with overriding class methods to preserve type-correctness and confirm semantics preservation. In this paper, we present an efficient, fully-automated, type constraint-based refactoring approach that assists developers in taking advantage of enhanced interfaces for their legacy Java software. The approach features an extensive …


Exploratory Analysis Of Discourses Between Students Engaged In A Debugging Task, Ma. Mercedes T. Rodrigo Jan 2017

Exploratory Analysis Of Discourses Between Students Engaged In A Debugging Task, Ma. Mercedes T. Rodrigo

Department of Information Systems & Computer Science Faculty Publications

This paper determined if and how high-performing and low-performing students differed in the language that they used as they collaborated on a debugging task. 180 students worked in pairs to debug 12 small programs with known errors. Students were segregated into high and low achievement levels based on the number of bugs they found. Chat transcripts from the pairs were analyzed using the Linguistic Inquiry and Word Count (LIWC) software. We found that high- and low-performing students only varied in terms of their use of words that implied discrepancy and sadness.


Designing An Intervention For Novice Programmers Based On Meaningful Gamification: An Expert Evaluation, Jenilyn L. Agapito, Ma. Mercedes T. Rodrigo Jan 2017

Designing An Intervention For Novice Programmers Based On Meaningful Gamification: An Expert Evaluation, Jenilyn L. Agapito, Ma. Mercedes T. Rodrigo

Department of Information Systems & Computer Science Faculty Publications

Gamification is defined as the addition of game-like elements and mechanics to non-game contexts to encourage certain desired behaviors. It is becoming a popular classroom intervention used in computer science instruction, including CS1, the first course computer science students take. It is being operationalized to enhance students' learning experience and achievement. However, existing studies have mostly implemented reward-based game elements which have resulted to contrasting behaviors among the students. Meaningful gamification, characterized as the use of game design elements to encourage users build internal motivation to behave in a certain way, is contended to be a more effective approach. The …


Stochastic Invariants For Probabilistic Termination, Krishnendu Chatterjee, Petr Novotný, Dorde Zikelic Jan 2017

Stochastic Invariants For Probabilistic Termination, Krishnendu Chatterjee, Petr Novotný, Dorde Zikelic

Research Collection School Of Computing and Information Systems

Termination is one of the basic liveness properties, and we study the termination problem for probabilistic programs with real-valued variables. Previous works focused on the qualitative problem that asks whether an input program terminates with probability 1 (almost-sure termination). A powerful approach for this qualitative problem is the notion of ranking supermartingales with respect to a given set of invariants. The quantitative problem (probabilistic termination) asks for bounds on the termination probability, and this problem has not been addressed yet. A fundamental and conceptual drawback of the existing approaches to address probabilistic termination is that even though the supermartingales consider …