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

Programming Languages and Compilers Commons

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

664 Full-Text Articles 783 Authors 116,087 Downloads 75 Institutions

All Articles in Programming Languages and Compilers

Faceted Search

664 full-text articles. Page 1 of 20.

A Tool For Optimizing Java 8 Stream Software Via Automated Refactoring, Raffi T. Khatchadourian, Yiming Tang, Mehdi Bagherzadeh, Syed Ahmed 2018 CUNY Hunter College

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


Mass Spectrometry Image Creator (Msic): Ion Mobility / Mass Spectrometry Imaging Workflow In Python, Stephen Creger, Julia Laskin, Daniela Mesa Sanchez 2018 Purdue University

Mass Spectrometry Image Creator (Msic): Ion Mobility / Mass Spectrometry Imaging Workflow In Python, Stephen Creger, Julia Laskin, Daniela Mesa Sanchez

The Summer Undergraduate Research Fellowship (SURF) Symposium

Mass spectrometry (MS) is a powerful characterization technique that enables identification of compounds in complex mixtures. Acquiring mass spectra in a spatially-resolved manner (i.e. over a grid), allows the data to be used to generate images that show the spatial distribution and relative intensities of every compound in a sample. These images can be used to monitor and identify biomarkers, explore the metabolism of compounds within tissues, and much more. However, the limitations of mass spectrometry can result in ambiguous compound identifications. Another characterization tool, ion mobility spectrometry (IM) can be integrated into existing MS routines to address this ...


A Divide-And-Conquer Approach To Syntax-Guided Synthesis, Peiyuan Shen, Xiaokang Qiu 2018 Purdue University

A Divide-And-Conquer Approach To Syntax-Guided Synthesis, Peiyuan Shen, Xiaokang Qiu

The Summer Undergraduate Research Fellowship (SURF) Symposium

Program synthesis aims to generate programs automatically from user-provided specifications. One critical research thrust is called Syntax-Guideds Synthesis. In addition to semantic specifications, the user should also provide a syntactic template of the desired program, which helps the synthesizer reduce the search space. The traditional symbolic approaches, such as CounterExample-Guided Inductive Synthesis (CEGIS) framework, does not scale to large search spaces. The goal of this project is to explore a compositional, divide-n-conquer approach that heuristically divides the synthesis task into subtasks and solves them separately. The idea is to decompose the function to be synthesized by creating a set of ...


Lightweight Call-Graph Construction For Multilingual Software Analysis, Anne-Marie Bogar, Damian Lyons, David Baird 2018 Fordham University

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


Lightweight Multilingual Software Analysis, Damian Lyons, Anne Marie Bogar, David Baird 2018 Fordham University

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 algorithm for extracting ...


Data Scientist’S Analysis Toolbox: Comparison Of Python, R, And Sas Performance, Jim Brittain, Mariana Cendon, Jennifer Nizzi, John Pleis 2018 Southern Methodist University

Data Scientist’S Analysis Toolbox: Comparison Of Python, R, And Sas Performance, Jim Brittain, Mariana Cendon, Jennifer Nizzi, John Pleis

SMU Data Science Review

A quantitative analysis will be performed on experiments utilizing three different tools used for Data Science. The analysis will include replication of analysis along with comparisons of code length, output, and results. Qualitative data will supplement the quantitative findings. The conclusion will provide data support guidance on the correct tool to use for common situations in the field of Data Science.


Intro Programming Lecture Notes (Student Version), Kyle Burke 2018 Plymouth State University

Intro Programming Lecture Notes (Student Version), Kyle Burke

Open Educational Resources

Lecture notes for an introductory programming course in Python (version 3.x). There are many example problems suitable for "flipped" classes. This follows the order of Allen Downey's Think Python text. Some sections are skipped, but the basics are included through inheritance and polymorphism. No prior programming experience is expected.


Lightweight Multilingual Software Analysis, Damian Lyons, Anne Marie Bogar, David Baird 2018 Fordham University

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


Path Creation By Continuous Flocking As An Example Of A Morphogenetic Programming Language, Bruce J MacLennan 2018 University of Tennessee, Knoxville

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


Compiler Optimization Effects On Register Collisions, Jonathan S. Tan 2018 California Polytechnic State University, San Luis Obispo

Compiler Optimization Effects On Register Collisions, Jonathan S. Tan

Master's Theses and Project Reports

We often want a compiler to generate executable code that runs as fast as possible. One consideration toward this goal is to keep values in fast registers to limit the number of slower memory accesses that occur. When there are not enough physical registers available for use, values are ``spilled'' to the runtime stack. The need for spills is discovered during register allocation wherein values in use are mapped to physical registers. One factor in the efficacy of register allocation is the number of values in use at one time (register collisions). Register collision is affected by compiler optimizations that ...


Poster: Towards Safe Refactoring For Intelligent Parallelization Of Java 8 Streams, Yiming Tang, Raffi T. Khatchadourian, Mehdi Bagherzadeh, Syed Ahmed 2018 CUNY Graduate Center

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.


Rcon Administration Tool Designed For Use With Garry’S Mod And Source Servers, John Gibbons 2018 La Salle University

Rcon Administration Tool Designed For Use With Garry’S Mod And Source Servers, John Gibbons

Mathematics and Computer Science Capstones

The proposed project is an Android application designed to interact with the Source RCON protocol. Defined below: The Source RCON Protocol is a TCP/IP-based communication protocol used by Source Dedicated Server, which allows console commands to be issued to the server via a "remote console", or RCON. The most common use of RCON is to allow server owners to control their game servers without direct access to the machine the server is running on. In order for commands to be accepted, the connection must first be authenticated using the server's RCON password, which can be set using the ...


Designing Smart Applications Using Ar (Augmented Reality), Kimberly A. De La Santa 2018 CUNY New York City College of Technology

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.


Tamscript - High Level Programming Interface For The Abstract Tile Assembly Model, Perry Mills 2018 University of Arkansas, Fayetteville

Tamscript - High Level Programming Interface For The Abstract Tile Assembly Model, Perry Mills

Computer Science and Computer Engineering Undergraduate Honors Theses

This paper describes a programming interface, TAMScript, for use with the PyTAS simulator. The interface allows for the dynamic generation of tile types as the simulation progresses, with the goal of reducing complexity for researchers. This paper begins with an introduction to the PyTAS software and a description of the 3D model which it simulates. Next, the changes made to support a dynamic generation scheme are detailed, and some of the potential benefits of this scheme are outlined. Then several of the example scripts which have been written using the TAMScript interface are reviewed. Finally, the potential for future research ...


Project Emerald, Addison Bostian 2018 Ouachita Baptist University

Project Emerald, Addison Bostian

Honors Theses

I designed the language described here to be, first and foremost, fun. I wanted it to be a programmer's go-to language, the language that you pick up for personal projects or utilities. I felt the way to make this happen was to make it fun to write in. In order to accomplish this, the language derives from several existing languages, taking what I believed were the best parts of each of them. Combining principles from multiple languages sounds like a good idea, I quickly ran into problems that would make developing a compiler extremely difficult, if not impossible. Because ...


Comparative Study Of Deep Learning Models For Network Intrusion Detection, Brian Lee, Sandhya Amaresh, Clifford Green, Daniel Engels 2018 Southern Methodist University

Comparative Study Of Deep Learning Models For Network Intrusion Detection, Brian Lee, Sandhya Amaresh, Clifford Green, Daniel Engels

SMU Data Science Review

In this paper, we present a comparative evaluation of deep learning approaches to network intrusion detection. A Network Intrusion Detection System (NIDS) is a critical component of every Internet connected system due to likely attacks from both external and internal sources. A NIDS is used to detect network born attacks such as Denial of Service (DoS) attacks, malware replication, and intruders that are operating within the system. Multiple deep learning approaches have been proposed for intrusion detection systems. We evaluate three models, a vanilla deep neural net (DNN), self-taught learning (STL) approach, and Recurrent Neural Network (RNN) based Long Short ...


Proactive Empirical Assessment Of New Language Feature Adoption Via Automated Refactoring: The Case Of Java 8 Default Methods, Raffi T. Khatchadourian, Hidehiko Masuhara 2018 CUNY Hunter College

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 2018 CUNY Hunter College

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 2018 University of Tennessee, Knoxville

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.


Project Emerald: Designing A Language To Be Fun, Addison Bostian 2018 Ouachita Baptist University

Project Emerald: Designing A Language To Be Fun, Addison Bostian

Scholars Day

For a computer language to be fun, it needs to be flexible, powerful, and easy to use. Emerald is a compromise between all of these features.


Digital Commons powered by bepress