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

Digital Commons Network

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

Articles 1 - 28 of 28

Full-Text Articles in Entire DC Network

Introduction, Raffi T. Khatchadourian Jan 2023

Introduction, Raffi T. Khatchadourian

Open Educational Resources

No abstract provided.


Reengineering And Refactoring, Raffi T. Khatchadourian Jan 2023

Reengineering And Refactoring, Raffi T. Khatchadourian

Open Educational Resources

No abstract provided.


Model Based Systems Engineering With A Docs-As-Code Approach For The Sealion Cubesat Project, Kevin Chiu, Sean Marquez, Sharanabasaweshwara Asundi Jan 2023

Model Based Systems Engineering With A Docs-As-Code Approach For The Sealion Cubesat Project, Kevin Chiu, Sean Marquez, Sharanabasaweshwara Asundi

Mechanical & Aerospace Engineering Faculty Publications

The SeaLion mission architecture team sought to create a model-based systems engineering approach to assist improving CubeSat success rates as well as for the SeaLion CubeSat project to guide an implementation for the flight software. This is important because university CubeSat teams are growing in number but often have untrained students as their core personnel. This was done using a document-as-code, or docs-as-code, approach. With this the team created tools for the systems architecture with the Mach 30 Modeling Language to create an architecture that is easy to learn and use even for newly admitted team members with little to …


Eclipse, Osgi, And The Java Model, Raffi T. Khatchadourian Jan 2022

Eclipse, Osgi, And The Java Model, Raffi T. Khatchadourian

Open Educational Resources

No abstract provided.


Abstract Syntax Trees (Asts) And The Visitor Pattern, Raffi T. Khatchadourian Jan 2022

Abstract Syntax Trees (Asts) And The Visitor Pattern, Raffi T. Khatchadourian

Open Educational Resources

No abstract provided.


Towards Lakosian Multilingual Software Design Principles, Damian Lyons, Saba Zahra, Thomas Marshall Jul 2019

Towards Lakosian Multilingual Software Design Principles, Damian Lyons, Saba Zahra, Thomas Marshall

Faculty Publications

Large software systems often comprise programs written in different programming languages. In the case when cross-language interoperability is accomplished with a Foreign Function Interface (FFI), for example pybind11, Boost.Python, Emscripten, PyV8, or JNI, among many others, common software engineering tools, such as call-graph analysis, are obstructed by the opacity of the FFI. This complicates debugging and fosters potential inefficiency and security problems. One contributing issue is that there is little rigorous software design advice for multilingual software. In this paper, we present our progress towards a more rigorous design approach to multilingual software. The approach is based on the existing …


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

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 Jul 2018

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 …


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

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 …


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 …


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.


A Cultural Diffusion Model For The Rise And Fall Of Programming Languages, Sergi Valverde, Ricard V. Solé Jun 2015

A Cultural Diffusion Model For The Rise And Fall Of Programming Languages, Sergi Valverde, Ricard V. Solé

Human Biology Open Access Pre-Prints

Our interaction with complex computing machines is mediated by programming languages (PLs) which constitute one of the major innovations in the evolution of technology. PLs allowed a flexible, scalable and fast use of hardware and are largely responsible for shaping the history of information technology since the rise of computers in the 1950s. The rapid growth and impact of computers was followed closely by the development of programming languages. As it occurs with natural, human languages, they emerged and got extinct. There has been always a diversity of coexisting PLs that somewhat compete among them, while occupying special niches. Here …


Popularity, Interoperability, And Impact Of Programming Languages In 100,000 Open Source Projects, Tegawende F. Bissyande, Ferdian Thung, David Lo, Lingxiao Jiang, Laurent Réveillère Jul 2013

Popularity, Interoperability, And Impact Of Programming Languages In 100,000 Open Source Projects, Tegawende F. Bissyande, Ferdian Thung, David Lo, Lingxiao Jiang, Laurent Réveillère

Research Collection School Of Computing and Information Systems

Programming languages have been proposed even before the era of the modern computer. As years have gone, computer resources have increased and application domains have expanded, leading to the proliferation of hundreds of programming languages, each attempting to improve over others or to address new programming paradigms. These languages range from procedural languages like C, object oriented languages like Java, and functional languages such as ML and Haskell. Unfortunately, there is a lack of large scale and comprehensive studies that examine the “popularity”, “interoperability”, and “impact” of various programming languages. To fill this gap, this study investigates a hundred thousands …


Freedom Of Choice As A Motivational Factor In Active Learning, Atanas Radenski Jul 2009

Freedom Of Choice As A Motivational Factor In Active Learning, Atanas Radenski

Mathematics, Physics, and Computer Science Faculty Articles and Research

Freedom to choose what, when, and how to contribute in a learning process can motivate students to actively engage and achieve more in their studies. However, freedom of choice complicates course management and may deter instructors from allowing such freedom. Our approach is to utilize existing functionality of course management systems such as Moodle to automatically facilitate and coordinate free student choices and provide much needed relief for instructors at the same time. Using Moodle we have developed novel digital study packs that blend freedom of choice with guidance and control. Our survey shows that assisted freedom of choice is …


Comparing The Use Of Tangible And Graphical Programming Languages For Informal Science Education, Michael S. Horn, Erin T. Solovey, R. Jordan Crouser, Robert J.K. Jacob Apr 2009

Comparing The Use Of Tangible And Graphical Programming Languages For Informal Science Education, Michael S. Horn, Erin T. Solovey, R. Jordan Crouser, Robert J.K. Jacob

Computer Science: Faculty Publications

Much of the work done in the field of tangible interaction has focused on creating tools for learning; however, in many cases, little evidence has been provided that tangible interfaces offer educational benefits compared to more conventional interaction techniques. In this paper, we present a study comparing the use of a tangible and a graphical interface as part of an interactive computer programming and robotics exhibit that we designed for the Boston Museum of Science. In this study, we have collected observations of 260 museum visitors and conducted interviews with 13 family groups. Our results show that visitors found the …


The Partial Evaluation Approach To Information Personalization, Naren Ramakrishnan, Saverio Perugini Jan 2001

The Partial Evaluation Approach To Information Personalization, Naren Ramakrishnan, Saverio Perugini

Computer Science Faculty Publications

Information personalization refers to the automatic adjustment of information content, structure, and presentation tailored to an individual user. By reducing information overload and customizing information access, personalization systems have emerged as an important segment of the Internet economy. This paper presents a systematic modeling methodology— PIPE (‘Personalization is Partial Evaluation’) — for personalization. Personalization systems are designed and implemented in PIPE by modeling an information-seeking interaction in a programmatic representation. The representation supports the description of information-seeking activities as partial information and their subsequent realization by partial evaluation, a technique for specializing programs. We describe the modeling methodology at a …


Java’S Insecure Parallelism, Per Brinch Hansen Jan 1999

Java’S Insecure Parallelism, Per Brinch Hansen

College of Engineering and Computer Science - Former Departments, Centers, Institutes and Projects

The author examines the synchronization features of Java and finds that they are insecure variants of his earliest ideas in parallel programming published in 1972-73. The claim that Java supports monitors is shown to be false. The author concludes that Java ignores the last twenty-five years of research in parallel programming languages.


Object-Oriented Programming And Parallelism, Atanas Radenski Jan 1998

Object-Oriented Programming And Parallelism, Atanas Radenski

Mathematics, Physics, and Computer Science Faculty Articles and Research

Initially, object-orientation and parallelism originated and developed as separate and relatively independent areas. During the last decade, however, more and more researchers were attracted by the benefits from a potential marriage of the two powerful paradigms. Numerous research projects and an increasing number of practical applications were aimed at different forms of amalgamation of parallelism with object-orientation. It has been realized that parallelism is a inherently needed enhancement for the traditional object-oriented programming (OOP) paradigm, and that object orientation can add significant flexibility to the parallel programming paradigm.


Syntactic Control Of Interference Revisited, Peter W. O'Hearn, A. J. Power, M. Takeyama, R. D. Tennent Jan 1995

Syntactic Control Of Interference Revisited, Peter W. O'Hearn, A. J. Power, M. Takeyama, R. D. Tennent

College of Engineering and Computer Science - Former Departments, Centers, Institutes and Projects

In "Syntactic Control of Interference" (POPL, 1978), J. C. Reynolds proposes three design principles intended to constrain the scope of imperative state effects in Algol-like languages. The resulting linguistic framework seems to be a very satisfactory way of combining functional and imperative concepts, having the desirable attributes of both purely functional languages (such as pcf) and simple imperative languages (such as the language of while programs). However, Reynolds points out that the "obvious" syntax for interference control has the unfortunate property that fi-reductions do not always preserve typings. Reynolds has subsequently presented a solution to this problem (ICALP, 1989), but …


Parametricity And Local Variables, Peter W. O'Hearn, R. D. Tennent Jan 1995

Parametricity And Local Variables, Peter W. O'Hearn, R. D. Tennent

College of Engineering and Computer Science - Former Departments, Centers, Institutes and Projects

We propose that the phenomenon of local state may be understood in terms of Strachey 's concept of parametric (i.e., uniform) polymorphism. The intuitive basis for our proposal is the following analogy: a non-local procedure is independent of locally-declared variables in the same way that a parametrically polymorphic function is independent of types to which it is instantiated. A connection between parametricity and representational abstraction was first suggested by J. C. Reynolds. Reynolds used logical relations to formalize this connection in languages with type variables and user-defined types. We use relational parametricity to construct a model for an Algol-like language …


Supporting Irregular Distributions Using Data-Parallel Languages, Ravi Ponnusamy, Yuan-Shin Hwang, Raja Das, Alok Choudhary, Geoffrey Fox Jan 1995

Supporting Irregular Distributions Using Data-Parallel Languages, Ravi Ponnusamy, Yuan-Shin Hwang, Raja Das, Alok Choudhary, Geoffrey Fox

Northeast Parallel Architecture Center

Languages such as Fortran D provide irregular distribution schemes that can efficiently support irregular problems. Irregular distributions can also be emulated in HPF. Compilers can incorporate runtime procedures to automatically support these distributions.


Introducing Objects And Parallelism To An Imperative Programming Language, Atanas Radenski Jan 1994

Introducing Objects And Parallelism To An Imperative Programming Language, Atanas Radenski

Mathematics, Physics, and Computer Science Faculty Articles and Research

The problem of enhancing objects with parallelism has been in the focus of numerous research projects in the recent years, but a satisfactory and commonly accepted solution has not appeared yet. A major problematic point seems to be providing inheritance for parallel objects. The general objective of this paper is to contribute to a better understanding of the language design issues in the area of parallel object-oriented programming (OOP) and, in particular, to design a framework for parallel OOP with multiple inheritance. What makes our proposed framework different from the other parallel OOP languages is its easy to use and …


A Model For Syntactic Control Of Interference, Peter W. O'Hearn Jan 1993

A Model For Syntactic Control Of Interference, Peter W. O'Hearn

College of Engineering and Computer Science - Former Departments, Centers, Institutes and Projects

Two imperative programming language phrases interfere when one writes to a storage variable that the other reads from or writes to. Reynolds has described an elegant linguistic approach to controlling interference in which a refinement of typed λ-calculus is used to limit sharing of storage variables; in particular, different identifiers are required never to interfere. This paper examines semantic foundations of the approach. We describe a category that has (an abstraction of) interference information built into all objects and maps. This information is used to define a “tensor” product whose components are required never to interfere. Environments are defined using …


Joyce Performance On A Multiprocessor, Per Brinch Hansen, Rangachari Anand Sep 1988

Joyce Performance On A Multiprocessor, Per Brinch Hansen, Rangachari Anand

Electrical Engineering and Computer Science - Technical Reports

Joyce is a parallel programming language based on CSP and Pascal. The language has been moved from the IBM PC to the Encore Multimax. The paper explains how the multiprocessor implementation of Joyce was guided by performance evaluation. The measurements show that the speed-up of Joyce programs follows Amdahl’s law.


A Multiprocessor Implementation Of Joyce, Per Brinch Hansen Sep 1988

A Multiprocessor Implementation Of Joyce, Per Brinch Hansen

Electrical Engineering and Computer Science - Technical Reports

Joyce is a programming language for parallel computers based on CSP and Pascal. A Joyce program defines concurrent agents which communicate through unbuffered channels. This paper describes a multiprocessor implementation of Joyce.


Lazy Evaluation And Nondeterminism Make Backus' Fp-Systems More Practical, Atanas Radenski Jan 1987

Lazy Evaluation And Nondeterminism Make Backus' Fp-Systems More Practical, Atanas Radenski

Mathematics, Physics, and Computer Science Faculty Articles and Research

Backus' FP-systems are made more practical by introducing into them lazy evaluation and nondeterminism. This is done in the framework of a concrete programming language called FP*. From the one hand, this language is almost as mathematical as FP-systems are. From the other hand, it gives the possibility to manage secondary memory and to develop such applications as, for instance, interactive and distributed file systems. Experimental versions of a compiler and an interpreter for the FP* language are implemented.


Specifying And Proving Properties Of Sentinels, Krithivasan Ramamritham, Robert M. Keller Mar 1981

Specifying And Proving Properties Of Sentinels, Krithivasan Ramamritham, Robert M. Keller

All HMC Faculty Publications and Research

This paper presents a technique for specifying and verifying properties of "sentinels," a high-level language construct for synchronizing access to shared resources. Statements in the specification language possess formal temporal semantics. As a prelude to proving the correctness of sentinels, the semantics of constructs used in sentinels is given. The proof technique involves showing that the temporal behavior of a sentinel conforms to that defined by the specification. The methodology is illustrated by applying it to a typical synchronization problem.


A Model Of Data Structures Commonly Used In Programming Languages And Data Base Management Systems, William L. Honig Jan 1975

A Model Of Data Structures Commonly Used In Programming Languages And Data Base Management Systems, William L. Honig

Computer Science: Faculty Publications and Other Works

This thesis claims that contemporary data structures can be understood and studied with an intelligible model which captures their essential differences and similarities and, further, that such a model is an appropriate basis for a top-down description method for data structures. To define the scope of the model, the data structures included in 21 programming languages and data base management systems have been tabulated. Each individual data structure is illustrated with an example drawn from a published paper or a working computer program. This mélange of data structures is divided into three classes (aggregates, associations , and files) and each …