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

Programming Languages and Compilers Commons

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

621 Full-Text Articles 652 Authors 107491 Downloads 68 Institutions

All Articles in Programming Languages and Compilers

Faceted Search

621 full-text articles. Page 1 of 18.

Understanding Inactive Yet Available Assignees In Github, Jing JIANG, David LO, Xinyu MA, Fuli FENG, Li ZHANG 2017 Singapore Management University

Understanding Inactive Yet Available Assignees In Github, Jing Jiang, David Lo, Xinyu Ma, Fuli Feng, Li Zhang

Research Collection School Of Information Systems

Context In GitHub, an issue or a pull request can be assigned to a specific assignee who is responsible for working on this issue or pull request. Due to the principle of voluntary participation, available assignees may remain inactive in projects. If assignees ever participate in projects, they are active assignees; otherwise, they are inactive yet available assignees (inactive assignees for short). Objective Our objective in this paper is to provide a comprehensive analysis of inactive yet available assignees in GitHub. Method We collect 2,374,474 records of activities in 37 popular projects, and 797,756 records of activities ...


Defaultification Refactoring: A Tool For Automatically Converting Java Methods To Default, Raffi T. Khatchadourian, Hidehiko Masuhara 2017 CUNY Hunter College

Defaultification Refactoring: A Tool For Automatically Converting Java Methods To Default, Raffi T. Khatchadourian, Hidehiko Masuhara

Publications and Research

Enabling interfaces to declare (instance) method implementations, Java 8 default methods can be used as a substitute for the ubiquitous skeletal implementation software design pattern. Performing this transformation on legacy software manually, though, may be non-trivial. The refactoring 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. All of this is necessary to preserve type-correctness and confirm semantics preservation. We demonstrate an automated refactoring tool called Migrate Skeletal Implementation to Interface for transforming legacy Java code to use the new default construct. The ...


Network Technologies Used To Aggregate Environmental Data, Paul Stasiuk, Konstantin Läufer, George K. Thiruvathukal 2017 Loyola University Chicago

Network Technologies Used To Aggregate Environmental Data, Paul Stasiuk, Konstantin Läufer, George K. Thiruvathukal

Konstantin Läufer

The goal of the Loyola Weather Service (lws) project is to design and build a system of functioning environmental monitoring widgets that can intelligently and autonomously control the environment around them based on set thresholds and triggers. The widgets will also have the ability to aggregate their data and easily display this data in various ways: through a user interface in the room that the widget is placed, via a web application, and programmatically via a RESTful web service.


Building Capable, Energy-Efficient, Flexible Visualization And Sensing Clusters From Commodity Tablets, Thomas Delgado Dias, Xian Yan, Konstantin Läufer, George K. Thiruvathukal 2017 Loyola University Chicago

Building Capable, Energy-Efficient, Flexible Visualization And Sensing Clusters From Commodity Tablets, Thomas Delgado Dias, Xian Yan, Konstantin Läufer, George K. Thiruvathukal

Konstantin Läufer

We explore the application of clusters of commodity tablet devices to problems spanning a “trilogy” of concerns: visualization, sensing, and computation. We conjecture that such clusters provide a low-cost, energy-efficient, flexible, and ultimately effective platform to tackle a wide range of problems within this trilogy. This is a work in progress, and we now elaborate our position and give a preliminary status report.

A wide range of Android tablet devices are available in terms of price and capabilities. “You get what you pay for” w.r.t. display resolution, sensors, and chipset---corresponding to the trilogy. $200 gets one a 1280x800-pixel ...


A Polyglot Approach To Bioinformatics Data Integration: Phylogenetic Analysis Of Hiv-1, Steven Reisman, Catherine Putonti, George K. Thiruvathukal, Konstantin Läufer 2017 Loyola University Chicago

A Polyglot Approach To Bioinformatics Data Integration: Phylogenetic Analysis Of Hiv-1, Steven Reisman, Catherine Putonti, George K. Thiruvathukal, Konstantin Läufer

Konstantin Läufer

RNA-interference has potential therapeutic use against HIV-1 by targeting highly-functional mRNA sequences that contribute to the virulence of the virus. Empirical work has shown that within cell lines, all of the HIV-1 genes are affected by RNAi-induced gene silencing. While promising, inherent in this treatment is the fact that RNAi sequences must be highly specific. HIV, however, mutates rapidly, leading to the evolution of viral escape mutants. In fact, such strains are under strong selection to include mutations within the targeted region, evading the RNAi therapy and thus increasing the virus’ fitness in the host. Taking a phylogenetic approach, we ...


Experiences With Scala Across The College-Level Curriculum, Konstantin Läufer, George K. Thiruvathukal, Mark C. Lewis 2017 Loyola University Chicago

Experiences With Scala Across The College-Level Curriculum, Konstantin Läufer, George K. Thiruvathukal, Mark C. Lewis

Konstantin Läufer

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 ...


Distributed Evolution Of Spiking Neuron Models On Apache Mahout For Time Series Analysis, Andrew Palumbo 2017 Cylance, Inc.

Distributed Evolution Of Spiking Neuron Models On Apache Mahout For Time Series Analysis, Andrew Palumbo

Annual Symposium on Biomathematics and Ecology: Education and Research

No abstract provided.


Grace's Inheritance, James Noble, Andrew P. Black, Kim B. Bruce, Michael Homer, Timothy Jones 2017 Victoria University of Wellington

Grace's Inheritance, James Noble, Andrew P. Black, Kim B. Bruce, Michael Homer, Timothy Jones

Andrew P. Black

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.


Experiences With Scala Across The College-Level Curriculum, Konstantin Läufer, George K. Thiruvathukal, Mark C. Lewis 2017 Loyola University Chicago

Experiences With Scala Across The College-Level Curriculum, Konstantin Läufer, George K. Thiruvathukal, Mark C. Lewis

George K. Thiruvathukal

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 ...


Combining Event-Driven And Capsule-Oriented Programming To Improve Integrated System Design, Jackson Maddox 2017 Iowa State University

Combining Event-Driven And Capsule-Oriented Programming To Improve Integrated System Design, Jackson Maddox

Computer Science Technical Reports

As concurrent software becomes more pervasive, models that provide both safe concurrency and modular reasoning become more important. Panini is one such model, and provides both sparse and cognizant interference based around the concept of capsules. Additionally, web frameworks, Graphical User Interface (GUI) libraries, and other projects are event-driven in nature, making events a commonly used programming paradigm for certain tasks. However, it would be difficult to use Panini in an event-driven manner, where there may be multiple capsules interested in a given event. Therefore, by integrating capsules and events one would be able to apply Panini's modular reasoning ...


Measuring Program Comprehension: A Large-Scale Field Study With Professionals, Xin XIA, Lingfeng BAO, David LO, Zhengchang XING, Ahmed E. HASSAN, Shanping LI 2017 Singapore Management University

Measuring Program Comprehension: A Large-Scale Field Study With Professionals, Xin Xia, Lingfeng Bao, David Lo, Zhengchang Xing, Ahmed E. Hassan, Shanping Li

Research Collection School Of Information Systems

During software development and maintenance, developers spend a considerable amount of time on program comprehension activities. Previous studies show that program comprehension takes up as much as half of a developer's time. However, most of these studies are performed in a controlled setting, or with a small number of participants, and investigate the program comprehension activities only within the IDEs. However, developers' program comprehension activities go well beyond their IDE interactions. In this paper, we extend our ActivitySpace framework to collect and analyze Human-Computer Interaction (HCI) data across many applications (not just the IDEs). We follow Minelli et al ...


Automated Android Application Permission Recommendation, Lingfeng BAO, David LO, Xin XIA 2017 Singapore Management University

Automated Android Application Permission Recommendation, Lingfeng Bao, David Lo, Xin Xia

Research Collection School Of Information Systems

The number of Android applications has increased rapidly as Android is becoming the dominant platform in the smartphone market. Security and privacy are key factors for an Android application to be successful. Android provides a permission mechanism to ensure security and privacy. This permission mechanism requires that developers declare the sensitive resources required by their applications. On installation or during runtime, users are required to agree with the permission request. However, in practice, there are numerous popular permission misuses, despite Android introducing official documents stating how to use these permissions properly. Some data mining techniques (e.g., association rule mining ...


Resource Bound Guarantees Via Programming Languages, Michael J. Burrell 2017 The University of Western Ontario

Resource Bound Guarantees Via Programming Languages, Michael J. Burrell

Electronic Thesis and Dissertation Repository

We present a programming language in which every well-typed program halts in time polynomial with respect to its input and, more importantly, in which upper bounds on resource requirements can be inferred with certainty. Ensuring that software meets its resource constraints is important in a number of domains, most prominently in hard real-time systems and safety critical systems where failing to meet its time constraints can result in catastrophic failure. The use of test- ing in ensuring resource constraints is of limited use since the testing of every input or environment is impossible in general. Static analysis, whether via the ...


Towards Efficient Java Virtual Machine Support For Dynamic Deployment Of Inter-Type Declarations, Bashar Gharaibeh, Hridesh Rajan, J. Morris Chang 2017 Iowa State University

Towards Efficient Java Virtual Machine Support For Dynamic Deployment Of Inter-Type Declarations, Bashar Gharaibeh, Hridesh Rajan, J. Morris Chang

Morris Chang

Dynamic deployment is an important feature of an aspect-oriented language design that has many applications, e.g. in runtime monitoring, runtime adaptation to fix bugs or add features to long running applications, runtime update of dynamic policy changes, etc. Many recently proposed language designs support these use cases. In previous work, researchers have demonstrated that the ability to support unanticipated deployment enables simpler and often more efficient implementations. These works have addressed an important subset of aspect-oriented features namely those that can be represented as the pointcut-advice model. In this work, we describe the design, formal semantics, and implementation of ...


Convergence Technologies For Sensor Systems In The Next Generation Networks, Conor Gildea, Declan Barber 2017 Institute of Technology Blanchardstown, Ireland,

Convergence Technologies For Sensor Systems In The Next Generation Networks, Conor Gildea, Declan Barber

The ITB Journal

This paper describes an approach to the internetworking of sensory nodes in a converged network environment. This preliminary investigation of sensory network creation is driven by a joint applied research project which seeks to establish the feasibility of the real-time remote monitoring of animal welfare while in transit between Ireland, Europe and the Middle East. This paper examines the use of Java to create sensor services in converging architectures which leverage the Internetworking protocols and describes our implementation of such a system.


Levity Polymorphism, Richard A. Eisenberg, Simon Peyton Jones 2017 Bryn Mawr College

Levity Polymorphism, Richard A. Eisenberg, Simon Peyton Jones

Computer Science Faculty Research and Scholarship

Parametric polymorphism is one of the linchpins of modern typed programming, but it comes with a real performance penalty. We describe this penalty; offer a principled way to reason about it (kinds as calling conventions); and propose levity polymorphism. This new form of polymorphism allows abstractions over calling conventions; we detail and verify restrictions that are necessary in order to compile levity-polymorphic functions. Levity polymorphism has created new opportunities in Haskell, including the ability to generalize nearly half of the type classes in GHC's standard library.


The Introduction Of Informal Cooperative Learning Into Our Programming Laboratories, Guity Ravai, Ludmila Nunes, Ronald Erdei 2017 Purdue University

The Introduction Of Informal Cooperative Learning Into Our Programming Laboratories, Guity Ravai, Ludmila Nunes, Ronald Erdei

IMPACT Presentations

Presented at the Women in Engineering ProActive Network (WEPAN) Change Leader Forum: Creating a Mindset for Action in Westminster, CO, USA


Cca Secure Encryption Supporting Authorized Equality Test On Ciphertexts In Standard Model And Its Applications, Yujue WANG, Hwee Hwa PANG, Ngoc Hieu TRAN, Robert H. DENG 2017 Singapore Management University

Cca Secure Encryption Supporting Authorized Equality Test On Ciphertexts In Standard Model And Its Applications, Yujue Wang, Hwee Hwa Pang, Ngoc Hieu Tran, Robert H. Deng

Research Collection School Of Information Systems

We present an encryption scheme for authorized equality test on ciphertexts (SEET), which allows the data owner to authorize a tester to compare her ciphertexts without decrypting their values. The security of SEET is formally proved against three types of adversary, two of them for ciphertext confidentiality in the phases before and after authorization respectively, and the third for token privacy. To the best of our knowledge, our SEET construction is the first encryption scheme supporting equality test on ciphertexts that is proven secure against the three types of adversary in the standard model. Our SEET construction outperforms existing schemes ...


Vcksm: Verifiable Conjunctive Keyword Search Over Mobile E-Health Cloud In Shared Multi-Owner Settings, Yinbin MIAO, Jianfeng MA, Ximeng LIU 2017 Singapore Management University

Vcksm: Verifiable Conjunctive Keyword Search Over Mobile E-Health Cloud In Shared Multi-Owner Settings, Yinbin Miao, Jianfeng Ma, Ximeng Liu

Research Collection School Of Information Systems

Searchable encryption (SE) is a promising technique which enables cloud users to conductsearch over encrypted cloud data in a privacy-preserving way, especially for the electronichealth record (EHR) system that contains plenty of medical history, diagnosis, radiologyimages, etc. In this paper, we focus on a more practical scenario, also named as theshared multi-owner settings, where each e-health record is co-owned by a fixed numberof parties. Although the existing SE schemes under the unshared multi-owner settingscan be adapted to this shared scenario, these schemes have to build multiple indexes,which definitely incur higher computational overhead. To save bandwidth and computingresources in cloud ...


Bug Characteristics In Blockchain Systems: A Large-Scale Empirical Study, Zhiyuan WAN, David LO, Xin XIA, Liang CAI 2017 Singapore Management University

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

Research Collection School Of 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 ...


Digital Commons powered by bepress