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

Programming Languages and Compilers Commons

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

606 Full-Text Articles 614 Authors 106265 Downloads 67 Institutions

All Articles in Programming Languages and Compilers

Faceted Search

606 full-text articles. Page 1 of 17.

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


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.


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


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.


Automated Refactoring Of Legacy Java Software To Default Methods, Raffi T. Khatchadourian, Hidehiko Masuhara 2017 CUNY Hunter College

Automated Refactoring Of Legacy Java Software To Default Methods, Raffi T. 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 ...


Policy-Agnostic Programming On The Client-Side, Kushal Palesha 2017 San Jose State University

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


Dynamic Information Flow Analysis In Ruby, Vigneshwari Chandrasekaran 2017 San Jose State University

Dynamic Information Flow Analysis In Ruby, Vigneshwari Chandrasekaran

Master's Projects

With the rapid increase in usage of the internet and online applications, there is a huge demand for applications to handle data privacy and integrity. Applications are already complex with business logic; adding the data safety logic would make them more complicated. The more complex the code becomes, the more possibilities it opens for security-critical bugs. To solve this conundrum, we can push this data safety handling feature to the language level rather than the application level. With a secure language, developers can write their application without having to worry about data security.

This project introduces dynamic information flow analysis ...


Implementing Dynamic Coarse & Fine Grained Taint Analysis For Rhino Javascript, Tejas Saoji 2017 San Jose State University

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

Master's Projects

Web application systems today are at great risk from attackers. They use methods like cross-site scripting, SQL injection, and format string attacks to exploit vulnerabilities in an application. Standard techniques like static analysis, code audits seem to be inadequate in successfully combating attacks like these. Both the techniques point out the vulnerabilities before an application is run. However, static analysis may result in a higher rate of false positives, and code audits are time-consuming and costly. Hence, there is a need for reliable detection mechanisms.

Dynamic taint analysis offers an alternate solution — it marks the incoming data from the untrusted ...


Library For Writing Contracts For Java Programs Using Prolog, Yogesh Dixit 2017 San Jose State University

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

Master's Projects

Today many large and complex software systems are being developed in Java. Although, software always has bugs, it is very important that these developed systems are more reliable despite these bugs.

One way that we can help achieve this is the Design by Contract (DbC) paradigm, which was first introduced by Bertrand Meyer, the creator of Eiffel. The concept of DbC was introduced for software developers so that they can produce more reliable software systems with a little extra cost. Using programming contracts allows developer to specify details such as input conditions and expected output conditions. Doing this makes it ...


Automated Refactoring Of Legacy Java Software To Default Methods, Raffi T. Khatchadourian, Hidehiko Masuhara 2017 CUNY Hunter College

Automated Refactoring Of Legacy Java Software To Default Methods, Raffi T. 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 ...


Project Arduino, Kevin Ye, Gregory Rouleau, Alan Person, Jabril Muhammad 2017 University of Tennessee Knoxville

Project Arduino, Kevin Ye, Gregory Rouleau, Alan Person, Jabril Muhammad

University of Tennessee Honors Thesis Projects

No abstract provided.


Programming Models' Support For Heterogeneous Architecture, Wei Wu 2017 University of Tennessee, Knoxville

Programming Models' Support For Heterogeneous Architecture, Wei Wu

Doctoral Dissertations

Accelerator-enhanced computing platforms have drawn a lot of attention due to their massive peak computational capacity. Heterogeneous systems equipped with accelerators such as GPUs have become the most prominent components of High Performance Computing (HPC) systems. Even at the node level the significant heterogeneity of CPU and GPU, i.e. hardware and memory space differences, leads to challenges for fully exploiting such complex architectures. Extending outside the node scope, only escalate such challenges.

Conventional programming models such as data- ow and message passing have been widely adopted in HPC communities. When moving towards heterogeneous systems, the lack of GPU integration ...


Tango: A Spanish-Based Programming Language, Ashley M. Zegiestowsky 2017 Butler University

Tango: A Spanish-Based Programming Language, Ashley M. Zegiestowsky

Butler Journal of Undergraduate Research

The first part of this article deals with the creation of my own Spanish-based programming language, Tango, using Spanish key words (instead of English key words). The second part relates to the design and implementation of a compiler that follows the grammar rules outlined in the Tango language in order to successfully lexically analyze, parse, semantically analyze, and generate code for Tango. This article begins with a description of the specific goals achieved in the Tango language, an explanation and brief examples of the Tango Grammar, a high-level overview of the compiler design and data structures used, and concludes with ...


Experiences With Scala Across The College-Level Curriculum, 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

Emerging Technologies Laboratory Publications

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


Cobol As A Modern Language, Charles Kiefer 2017 University of North Georgia

Cobol As A Modern Language, Charles Kiefer

Honors Theses

The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence. - Edsger Dijkstra (1)

This statement may be hyperbole, but Dijkstra's view on the language reflects underlying feelings about COBOL throughout the programming world. The language was created in 1959 to allow for interactivity between computation machines.(2) More than half a century later, COBOL is still used extensively in mainframes, computers designed for large-scale calculation and record processing. Numerous factors have contributed to the longevity of COBOL, including ease of use compared to its contemporaries and an upgrade to object orientation in ...


Metafork: A Compilation Framework For Concurrency Models Targeting Hardware Accelerators, Xiaohui Chen 2017 The University of Western Ontario

Metafork: A Compilation Framework For Concurrency Models Targeting Hardware Accelerators, Xiaohui Chen

Electronic Thesis and Dissertation Repository

Parallel programming is gaining ground in various domains due to the tremendous computational power that it brings; however, it also requires a substantial code crafting effort to achieve performance improvement. Unfortunately, in most cases, performance tuning has to be accomplished manually by programmers. We argue that automated tuning is necessary due to the combination of the following factors. First, code optimization is machine-dependent. That is, optimization preferred on one machine may be not suitable for another machine. Second, as the possible optimization search space increases, manually finding an optimized configuration is hard. Therefore, developing new compiler techniques for optimizing applications ...


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

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

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


Digital Commons powered by bepress