Open Access. Powered by Scholars. Published by Universities.®
Programming Languages and Compilers Commons™
Open Access. Powered by Scholars. Published by Universities.®
- Discipline
-
- Software Engineering (27)
- Education (6)
- Artificial Intelligence and Robotics (5)
- Engineering (5)
- Computer Engineering (4)
-
- Social and Behavioral Sciences (3)
- Asian Studies (2)
- Computer and Systems Architecture (2)
- Higher Education (2)
- Information Security (2)
- International and Area Studies (2)
- Other Computer Sciences (2)
- Cognitive Neuroscience (1)
- Data Storage Systems (1)
- Educational Methods (1)
- Engineering Education (1)
- Graphics and Human Computer Interfaces (1)
- Life Sciences (1)
- Neuroscience and Neurobiology (1)
- OS and Networks (1)
- Science and Mathematics Education (1)
- Science and Technology Studies (1)
- Systems Architecture (1)
- Institution
- Keyword
-
- Programming (5)
- Computer programming (3)
- Empirical study (3)
- Java (3)
- Java 8 (3)
-
- Refactoring (3)
- Software Engineering (3)
- Streams (3)
- Typestate analysis (3)
- Default methods (2)
- Language (2)
- Machine learning (2)
- Parallelization (2)
- Program Comprehension (2)
- Programming languages (2)
- Skeletal implementation pattern (2)
- Software (2)
- Technology (2)
- Workflow (2)
- AR (1)
- Affect (1)
- Agent-based and Multi-agent Systems (1)
- Architecture (1)
- Artificial intelligence (1)
- Artificial morphogenesis (1)
- Attribute-based encryption (1)
- Augmented Reality (1)
- Automatic item generation (1)
- Automatic parallelization (1)
- Automation (1)
Articles 1 - 30 of 47
Full-Text Articles in Programming Languages and Compilers
An Architectural Design And Evaluation Of An Affective Tutoring System For Novice Programmers, Hua Leong Fwa
An Architectural Design And Evaluation Of An Affective Tutoring System For Novice Programmers, Hua Leong Fwa
Research Collection School Of Computing and Information Systems
Affect is prevalent in learning and it influences students’ learning achievement. This paper details the design and evaluation of an Affective Tutoring System (ATS) that tutors student in computer programming. Although most ATSs are purpose built for a specific domain, making adaptation to another domain difficult, this ATS is architected for adaptability and extensibility. This study also addresses a lack of research exploring the theories and methods of integrating affect and learning within the learning process by proposing methods of regulating the negative affect of students. Both quantitative and qualitative techniques were used for evaluation of the effectiveness of the …
Perflearner: Learning From Bug Reports To Understand And Generate Performance Test Frames, Xue Han, Tingting Yu, David Lo
Perflearner: Learning From Bug Reports To Understand And Generate Performance Test Frames, Xue Han, Tingting Yu, David Lo
Research Collection School Of Computing and Information Systems
Software performance is important for ensuring the quality of software products. Performance bugs, defined as programming errors that cause significant performance degradation, can lead to slow systems and poor user experience. While there has been some research on automated performance testing such as test case generation, the main idea is to select workload values to increase the program execution times. These techniques often assume the initial test cases have the right combination of input parameters and focus on evolving values of certain input parameters. However, such an assumption may not hold for highly configurable real-word applications, in which the combinations …
Effectiveness Of Physical Robot Versus Robot Simulator In Teaching Introductory Programming, Oka Kurniawan, Norman Tiong Seng Lee, Subhajit Datta, Nachamma Sockalingam, Pey Lin Leong
Effectiveness Of Physical Robot Versus Robot Simulator In Teaching Introductory Programming, Oka Kurniawan, Norman Tiong Seng Lee, Subhajit Datta, Nachamma Sockalingam, Pey Lin Leong
Research Collection School Of Computing and Information Systems
This study reports the use of a physical robot and robot simulator in an introductory programming course in a university and measures students' programming background conceptual learning gain and learning experience. One group used physical robots in their lessons to complete programming assignments, while the other group used robot simulators. We are interested in finding out if there is any difference in the learning gain and experiences between those that use physical robots as compared to robot simulators. Our results suggest that there is no significant difference in terms of students' learning between the two approaches. However, the control group …
A Model-Based Ai-Driven Test Generation System, Dionny Santiago
A Model-Based Ai-Driven Test Generation System, Dionny Santiago
FIU Electronic Theses and Dissertations
Achieving high software quality today involves manual analysis, test planning, documentation of testing strategy and test cases, and development of automated test scripts to support regression testing. This thesis is motivated by the opportunity to bridge the gap between current test automation and true test automation by investigating learning-based solutions to software testing. We present an approach that combines a trainable web component classifier, a test case description language, and a trainable test generation and execution system that can learn to generate new test cases. Training data was collected and hand-labeled across 7 systems, 95 web pages, and 17,360 elements. …
Vt-Revolution: Interactive Programming Tutorials Made Possible, Lingfeng Bao, Zhenchang Xing, Xin Xia, David Lo, Shanping Li
Vt-Revolution: Interactive Programming Tutorials Made Possible, Lingfeng Bao, Zhenchang Xing, Xin Xia, David Lo, Shanping Li
Research Collection School Of Computing and Information Systems
Programming video tutorials showcase programming tasks and associated workflows. Although video tutorials are easy to create, it isoften difficult to explore the captured workflows and interact withthe programs in the videos. In this work, we propose a tool named VTRevolution – an interactive programming video tutorial authoring system. VTRevolution has two components: 1) a tutorial authoring system leverages operating system level instrumentation to log workflow history while tutorial authors are creating programming video tutorials; 2) a tutorial watching system enhances the learning experience of video tutorials by providing operation history and timeline-based browsing interactions. Our tutorial authoring system does not …
Infar: Insight Extraction From App Reviews, Cuiyun Gao, Jichuan Zeng, David Lo, Chin-Yew Lin, Michael R. Lyu, Irwin King
Infar: Insight Extraction From App Reviews, Cuiyun Gao, Jichuan Zeng, David Lo, Chin-Yew Lin, Michael R. Lyu, Irwin King
Research Collection School Of Computing and Information Systems
App reviews play an essential role for users to convey their feedback about using the app. The critical information contained in app reviews can assist app developers for maintaining and updating mobile apps. However, the noisy nature and large-quantity of daily generated app reviews make it difficult to understand essential information carried in app reviews. Several prior studies have proposed methods that can automatically classify or cluster user reviews into a few app topics (e.g., security). These methods usually act on a static collection of user reviews. However, due to the dynamic nature of user feedback (i.e., reviews keep coming …
Dsm: A Specification Mining Tool Using Recurrent Neural Network Based Language Model, Tien-Duy B. Le, Lingfeng Bao, David Lo
Dsm: A Specification Mining Tool Using Recurrent Neural Network Based Language Model, Tien-Duy B. Le, Lingfeng Bao, David Lo
Research Collection School Of Computing and Information Systems
Formal specifications are important but often unavailable. Furthermore, writing these specifications is time-consuming and requires skills from developers. In this work, we present Deep Specification Miner (DSM), an automated tool that applies deep learning to mine finite-state automaton (FSA) based specifications. DSM accepts as input a set of execution traces to train a Recurrent Neural Network Language Model (RNNLM). From the input traces, DSM creates a Prefix Tree Acceptor (PTA) and leverages the inferred RNNLM to extract many features. These features are then forwarded to clustering algorithms for merging similar automata states in the PTA for assembling a number of …
Girls Who Code 3rd-5th, Khristina Polivanov
Girls Who Code 3rd-5th, Khristina Polivanov
Honors Expanded Learning Clubs
The goal of the club is to encourage girls to be confident in themselves and their abilities while teaching them basic concepts used in computer science.
Efficient Attribute-Based Encryption With Blackbox Traceability, Shengmin Xu, Guomin Yang, Yi Mu, Ximeng Liu
Efficient Attribute-Based Encryption With Blackbox Traceability, Shengmin Xu, Guomin Yang, Yi Mu, Ximeng Liu
Research Collection School Of Computing and Information Systems
Traitor tracing scheme can be used to identify a decryption key is illegally used in public-key encryption. In CCS’13, Liu et al. proposed an attribute-based traitor tracing (ABTT) scheme with blackbox traceability which can trace decryption keys embedded in a decryption blackbox/device rather than tracing a well-formed decryption key. However, the existing ABTT schemes with blackbox traceability are based on composite order group and the size of the decryption key depends on the policies and the number of system users. In this paper, we revisit blackbox ABTT and introduce a new primitive called attribute-based set encryption (ABSE) based on key-policy …
Augmenting And Structuring User Queries To Support Efficient Free-Form Code Search, Raphael Sirres, Tegawendé F. Bissyande, Dongsun Kim, David Lo, Jacques Klein, Kisub Kim, Yves Le Traon
Augmenting And Structuring User Queries To Support Efficient Free-Form Code Search, Raphael Sirres, Tegawendé F. Bissyande, Dongsun Kim, David Lo, Jacques Klein, Kisub Kim, Yves Le Traon
Research Collection School Of Computing and Information Systems
Source code terms such as method names and variable types are often different from conceptual words mentioned in a search query. This vocabulary mismatch problem can make code search inefficient. In this paper, we present COde voCABUlary (CoCaBu), an approach to resolving the vocabulary mismatch problem when dealing with free-form code search queries. Our approach leverages common developer questions and the associated expert answers to augment user queries with the relevant, but missing, structural code entities in order to improve the performance of matching relevant code examples within large code repositories. To instantiate this approach, we build GitSearch, a code …
Scaling-Up Stackelberg Security Games Applications Using Approximations, Arunesh Sinha, Aaron Schlenker, Donnabell Dmello, Milind Tambe
Scaling-Up Stackelberg Security Games Applications Using Approximations, Arunesh Sinha, Aaron Schlenker, Donnabell Dmello, Milind Tambe
Research Collection School Of Computing and Information Systems
Stackelberg Security Games (SSGs) have been adopted widely for modeling adversarial interactions, wherein scalability of equilibrium computation is an important research problem. While prior research has made progress with regards to scalability, many real world problems cannot be solved satisfactorily yet as per current requirements; these include the deployed federal air marshals (FAMS) application and the threat screening (TSG) problem at airports. We initiate a principled study of approximations in zero-sum SSGs. Our contribution includes the following: (1) a unified model of SSGs called adversarial randomized allocation (ARA) games, (2) hardness of approximation for zero-sum ARA, as well as for …
Measuring Program Comprehension: A Large-Scale Field Study With Professionals, Xin Xia, Lingfeng Bao, David Lo, Zhengchang Xing, Ahmed E. Hassan, Shanping Li
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 Computing and 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.'s approach …
A Tool For Optimizing Java 8 Stream Software Via Automated Refactoring, Raffi T. Khatchadourian, Yiming Tang, Mehdi Bagherzadeh, Syed Ahmed
A Tool For Optimizing Java 8 Stream Software Via Automated Refactoring, Raffi T. Khatchadourian, Yiming Tang, Mehdi Bagherzadeh, Syed Ahmed
Publications and Research
Streaming APIs are pervasive in mainstream Object-Oriented languages. For example, the Java 8 Stream API allows for functional-like, MapReduce-style operations in processing both finite and infinite data structures. However, using this API efficiently involves subtle considerations like determining when it is best for stream operations to run in parallel, when running operations in parallel can be less efficient, and when it is safe to run in parallel due to possible lambda expression side-effects. In this paper, we describe the engineering aspects of an open source automated refactoring tool called Optimize Streams that assists developers in writing optimal stream software in …
Break The Dead End Of Dynamic Slicing: Localizing Data And Control Omission Bug, Yun Lin, Jun Sun, Lyly Tran, Guangdong Bai, Haijun Wang, Jin Song Dong
Break The Dead End Of Dynamic Slicing: Localizing Data And Control Omission Bug, Yun Lin, Jun Sun, Lyly Tran, Guangdong Bai, Haijun Wang, Jin Song Dong
Research Collection School Of Computing and Information Systems
Dynamic slicing is a common way of identifying the root cause when a program fault is revealed. With the dynamic slicing technique, the programmers can follow data and control flow along the program execution trace to the root cause. However, the technique usually fails to work on omission bugs, i.e., the faults which are caused by missing executing some code. In many cases, dynamic slicing over-skips the root cause when an omission bug happens, leading the debugging process to a dead end. In this work, we conduct an empirical study on the omission bugs in the Defects4J bug repository. Our …
The Thoralf Plugin: For Your Fancy Type Needs, Divesh Otwani, Richard A. Eisenberg
The Thoralf Plugin: For Your Fancy Type Needs, Divesh Otwani, Richard A. Eisenberg
Computer Science Faculty Research and Scholarship
Many fancy types (e.g., generalized algebraic data types, type families) require a type checker plugin. These fancy types have a type index (e.g., type level natural numbers) with an equality relation that is difficult or impossible to represent using GHC’s built-in type equality. The most practical way to represent these equality relations is through a plugin that asserts equality constraints. However, such plugins are difficult to write and reason about. In this paper, we (1) present a formal theory of reasoning about the correctness of type checker plugins for type indices, and, (2) apply this theory in creating Thoralf, a …
Type Variables In Patterns, Richard A. Eisenberg, Joachim Breitner, Simon Peyton Jones
Type Variables In Patterns, Richard A. Eisenberg, Joachim Breitner, Simon Peyton Jones
Computer Science Faculty Research and Scholarship
For many years, GHC has implemented an extension to Haskell that allows type variables to be bound in type signatures and patterns, and to scope over terms. This extension was never properly specified. We rectify that oversight here. With the formal specification in hand, the otherwise-labyrinthine path toward a design for binding type variables in patterns becomes blindingly clear. We thus extend ScopedTypeVariables to bind type variables explicitly, obviating the Proxy workaround to the dustbin of history.
Rule-Based Specification Mining Leveraging Learning To Rank, Zherui Cao, Yuan Tian, Bui Tien Duy Le, David Lo
Rule-Based Specification Mining Leveraging Learning To Rank, Zherui Cao, Yuan Tian, Bui Tien Duy Le, David Lo
Research Collection School Of Computing and Information Systems
Software systems are often released without formal specifications. To deal with the problem of lack of and outdated specifications, rule-based specification mining approaches have been proposed. These approaches analyze execution traces of a system to infer the rules that characterize the protocols, typically of a library, that its clients must obey. Rule-based specification mining approaches work by exploring the search space of all possible rules and use interestingness measures to differentiate specifications from false positives. Previous rule-based specification mining approaches often rely on one or two interestingness measures, while the potential benefit of combining multiple available interestingness measures is not …
Teaching Basic Programming To Pre-University Students Through Blended Learning Pedagogy: A Descriptive Study, Vandana Ramachandra Rao, Ngee Mok Heng
Teaching Basic Programming To Pre-University Students Through Blended Learning Pedagogy: A Descriptive Study, Vandana Ramachandra Rao, Ngee Mok Heng
Research Collection School Of Computing and Information Systems
Students enrolling for undergraduate programmes in Singapore would have either finished their polytechnic diploma or completed Junior College (JC) studies. Most pre-university students coming through the JC pathway are not exposed to programming as computing is offered as a subject in a very few JCs. The authors of this paper conducted four runs of an introductory programing course between 2016 and 2017 for a research project funded by the Ministry of Education, Singapore. The project named “Let’s Code!” was intended to introduce fundamental programming concepts to students and guide them to consider taking a computer-science related degree for their university …
Lightweight Call-Graph Construction For Multilingual Software Analysis, Anne-Marie Bogar, Damian Lyons, David Baird
Lightweight Call-Graph Construction For Multilingual Software Analysis, Anne-Marie Bogar, Damian Lyons, David Baird
Faculty Publications
Analysis of multilingual codebases is a topic of increasing importance. In prior work, we have proposed the MLSA (MultiLingual Software Analysis) architecture, an approach to the lightweight analysis of multilingual codebases, and have shown how it can be used to address the challenge of constructing a single call graph from multilingual software with mutual calls. This paper addresses the challenge of constructing monolingual call graphs in a lightweight manner (consistent with the objective of MLSA) which nonetheless yields sufficient information for resolving language interoperability calls. A novel approach is proposed which leverages information from …
Lightweight Multilingual Software Analysis, Damian Lyons, Anne Marie Bogar, David Baird
Lightweight Multilingual Software Analysis, Damian Lyons, Anne Marie Bogar, David Baird
Faculty Publications
Large software systems can often be multilingual – that is, software systems are written in more than one language. However, many popular software engineering tools are monolingual by nature. Nonetheless, companies are faced with the need to manage their large, multilingual codebases to address issues with security, efficiency, and quality metrics. This paper presents a novel lightweight approach to multilingual software analysis – MLSA. The approach is modular and focused on efficient static analysis computation for large codebases. One topic is addressed in detail – the generation of multilingual call graphs to identify language boundary problems in multilingual code. The …
A New Functional-Logic Compiler For Curry: Sprite, Sergio Antoy, Andy Jost
A New Functional-Logic Compiler For Curry: Sprite, Sergio Antoy, Andy Jost
Computer Science Faculty Publications and Presentations
We introduce a new native code compiler for Curry codenamed Sprite. Sprite is based on the Fair Scheme, a compilation strategy that provides instructions for transforming declarative, non-deterministic programs of a certain class into imperative, deterministic code. We outline salient features of Sprite, discuss its implementation of Curry programs, and present benchmarking results. Sprite is the first-to-date operationally complete implementation of Curry. Preliminary results show that ensuring this property does not incur a significant penalty.
Lightweight Multilingual Software Analysis, Damian Lyons, Anne Marie Bogar, David Baird
Lightweight Multilingual Software Analysis, Damian Lyons, Anne Marie Bogar, David Baird
Faculty Publications
Developer preferences, language capabilities and the persistence of older languages contribute to the trend that large software codebases are often multilingual – that is, written in more than one computer language. While developers can leverage monolingual software development tools to build software components, companies are faced with the problem of managing the resultant large, multilingual codebases to address issues with security, efficiency, and quality metrics. The key challenge is to address the opaque nature of the language interoperability interface: one language calling procedures in a second (which may call a third, or even back to the first), resulting in a …
Stackelberg Security Games: Looking Beyond A Decade Of Success, Arunesh Sinha, Fei Fang, Bo An, Christopher Kiekintveld, Milind Tambe
Stackelberg Security Games: Looking Beyond A Decade Of Success, Arunesh Sinha, Fei Fang, Bo An, Christopher Kiekintveld, Milind Tambe
Research Collection School Of Computing and Information Systems
The Stackelberg Security Game (SSG) model has been immensely influential in security research since it was introduced roughly a decade ago. Furthermore, deployed SSG-based applications are one of most successful examples of game theory applications in the real world. We present a broad survey of recent technical advances in SSG and related literature, and then look to the future by highlighting the new potential applications and open research problems in SSG.
Path Creation By Continuous Flocking As An Example Of A Morphogenetic Programming Language, Bruce J Maclennan
Path Creation By Continuous Flocking As An Example Of A Morphogenetic Programming Language, Bruce J Maclennan
Faculty Publications and Other Works -- EECS
Artificial morphogenesis uses processes inspired by embryology to control massive swarms of robots to assemble complex physical structures. First, we use an example morphogenetic program to illustrate a prototype implementation of morphgen, a morphogenetic programming language. The syntax and semantics are described informally as illustrated by the example program, which is included in its entirety in an appendix. Another appendix includes a complete formal grammar for the current version of the language. Next, we describe the results of a series of experiments with the program, which simulates a continuous swarm of microscopic agents creating paths from an origin to a …
Static Analysis Of Context Leaks In Android Applications, Flavio Toffalini, Jun Sun, Martín Cohoa
Static Analysis Of Context Leaks In Android Applications, Flavio Toffalini, Jun Sun, Martín Cohoa
Research Collection School Of Computing and Information Systems
Android native applications, written in Java and distributed in APK format, are widely used in mobile devices. Their specific pattern of use lets the operating system control the creation and destruction of key resources, such as activities and services (contexts). Programmers are not supposed to interfere with such lifecycle events. Otherwise contexts might be leaked, i.e. they will never be deallocated from memory, or be deallocated too late, leading to memory exhaustion and frozen applications. In practice, it is easy to write incorrect code, which hinders garbage collection of contexts and subsequently leads to context leakage.In this work, we present …
Poster: Towards Safe Refactoring For Intelligent Parallelization Of Java 8 Streams, Yiming Tang, Raffi T. Khatchadourian, Mehdi Bagherzadeh, Syed Ahmed
Poster: Towards Safe Refactoring For Intelligent Parallelization Of Java 8 Streams, Yiming Tang, Raffi T. Khatchadourian, Mehdi Bagherzadeh, Syed Ahmed
Publications and Research
The Java 8 Stream API sets forth a promising new programming model that incorporates functional-like, MapReduce-style features into a mainstream programming language. However, using streams correctly and efficiently may involve subtle considerations. In this poster, we present our ongoing work and preliminary results towards an automated refactoring approach that assists developers in writing optimal stream code. The approach, based on ordering and typestate analysis, determines when it is safe and advantageous to convert streams to parallel and optimize a parallel streams.
Designing Smart Applications Using Ar (Augmented Reality), Kimberly A. De La Santa
Designing Smart Applications Using Ar (Augmented Reality), Kimberly A. De La Santa
Publications and Research
Augmented Reality is rapidly developing in popularity because it brings elements of the virtual world, into our real world. Augmented Reality (AR) is a variation of Virtual Reality (VR). VR technologies immerses a user inside an imaginary environment. While immersed, the user cannot see the real world around them. In contrast, AR allows the user to see the real world, with virtual objects and information intertwined. Therefore, AR supplements reality and enhances the things we see, hear, and feel. This research project will implement a Web page that gives the user the opportunity to experiment with AR.
Proactive Empirical Assessment Of New Language Feature Adoption Via Automated Refactoring: The Case Of Java 8 Default Methods, Raffi T. Khatchadourian, Hidehiko Masuhara
Proactive Empirical Assessment Of New Language Feature Adoption Via Automated Refactoring: The Case Of Java 8 Default Methods, Raffi T. Khatchadourian, Hidehiko Masuhara
Publications and Research
Programming languages and platforms improve over time, sometimes resulting in new language features that offer many benefits. However, despite these benefits, developers may not always be willing to adopt them in their projects for various reasons. In this paper, we describe an empirical study where we assess the adoption of a particular new language feature. Studying how developers use (or do not use) new language features is important in programming language research and engineering because it gives designers insight into the usability of the language to create meaning programs in that language. This knowledge, in turn, can drive future innovations …
Proactive Empirical Assessment Of New Language Feature Adoption Via Automated Refactoring: The Case Of Java 8 Default Methods, Raffi T. Khatchadourian, Hidehiko Masuhara
Proactive Empirical Assessment Of New Language Feature Adoption Via Automated Refactoring: The Case Of Java 8 Default Methods, Raffi T. Khatchadourian, Hidehiko Masuhara
Publications and Research
Programming languages and platforms improve over time, sometimes resulting in new language features that offer many benefits. However, despite these benefits, developers may not always be willing to adopt them in their projects for various reasons. In this paper, we describe an empirical study where we assess the adoption of a particular new language feature. Studying how developers use (or do not use) new language features is important in programming language research and engineering because it gives designers insight into the usability of the language to create meaning programs in that language. This knowledge, in turn, can drive future innovations …
The Synmac Syntax Macroprocessor: Introduction And Manual, Version 5, Bruce J Maclennan
The Synmac Syntax Macroprocessor: Introduction And Manual, Version 5, Bruce J Maclennan
Faculty Publications and Other Works -- EECS
A syntax macroprocessor permits parameterized text substitutions with greater syntactic flexibility than allowed with ordinary macroprocessors. This report describes the \emph{synmac} syntax macroprocessor, which permits arbitrarily delimited macro invocations, and thus allows the definition of new statement and expression forms or even complete languages. Synmac is a computationally complete programming language. We define the synmac macro language, document a prototype implementation, and give examples of its use.