Open Access. Powered by Scholars. Published by Universities.®
Programming Languages and Compilers Commons™
Open Access. Powered by Scholars. Published by Universities.®
- Discipline
-
- Software Engineering (16)
- Education (4)
- Engineering (2)
- OS and Networks (2)
- Aerospace Engineering (1)
-
- Biological Phenomena, Cell Phenomena, and Immunity (1)
- Computer Engineering (1)
- Databases and Information Systems (1)
- Digital Communications and Networking (1)
- Educational Methods (1)
- Educational Technology (1)
- First and Second Language Acquisition (1)
- Graphics and Human Computer Interfaces (1)
- Instructional Media Design (1)
- Linguistics (1)
- Medical Sciences (1)
- Medicine and Health Sciences (1)
- Numerical Analysis and Scientific Computing (1)
- Operations Research, Systems Engineering and Industrial Engineering (1)
- Other Computer Sciences (1)
- Science and Mathematics Education (1)
- Social and Behavioral Sciences (1)
- Systems Engineering (1)
- Theory and Algorithms (1)
- Typological Linguistics and Linguistic Diversity (1)
- Institution
-
- City University of New York (CUNY) (9)
- Chapman University (5)
- Syracuse University (4)
- Bemidji State University (2)
- Fordham University (2)
-
- Claremont Colleges (1)
- Dakota State University (1)
- Loyola University Chicago (1)
- Old Dominion University (1)
- Sacred Heart University (1)
- Seattle Pacific University (1)
- St. Mary's University (1)
- Touro College and University System (1)
- University of Dayton (1)
- University of Malaya (1)
- Wayne State University (1)
- Publication Year
- Publication
-
- Open Educational Resources (8)
- College of Engineering and Computer Science - Former Departments, Centers, Institutes and Projects (4)
- Mathematics, Physics, and Computer Science Faculty Articles and Research (4)
- Faculty Publications (2)
- Honors Capstones (2)
-
- All HMC Faculty Publications and Research (1)
- Computer Science Faculty Publications (1)
- Emerging Technologies Laboratory (1)
- Faculty Publications & Research of the TUC College of Osteopathic Medicine (1)
- Honors Projects (1)
- Human Biology Open Access Pre-Prints (1)
- Mathematics, Physics, and Computer Science Faculty Books and Book Chapters (1)
- Mechanical & Aerospace Engineering Faculty Publications (1)
- Publications and Research (1)
- Research & Publications (1)
- School of Computer Science & Engineering Faculty Publications (1)
- Student Works (2000-2009) (1)
- Systems Manuals - 2026 (1)
- Publication Type
Articles 1 - 30 of 33
Full-Text Articles in Programming Languages and Compilers
Do Developers Read Type Information? An Eye-Tracking Study On Typescript, Samuel W. Flint, Robert Dyer, Bonita Sharif
Do Developers Read Type Information? An Eye-Tracking Study On Typescript, Samuel W. Flint, Robert Dyer, Bonita Sharif
Research & Publications
Statically-annotated types have been shown to aid developers in a number of programming tasks, and this benefit holds true even when static type checking is not used. It is hypothesized that this is because developers use type annotations as in-code documentation. In this study, we aim to provide evidence that developers use type annotations as in-code documentation. Understanding this hypothesized use will help to understand how, and in what contexts, developers use type information; additionally, it may help to design better development tools and inform educational decisions. To provide this evidence, we conduct an eye tracking study with 26 undergraduate …
Rattler Python, Samer Jabor
Rattler Python, Samer Jabor
Systems Manuals - 2026
The Rattler Python project is an interactive game-based learning system that intends to teach the basic concepts of Python programming through guided instruction, gameplay challenges, and review-based assessments. The document contains a proposal for this system consisting of problem definition, background research, existing solutions, and the proposed product, together with the system scope, assumptions, and the organization of the remainder of this document.
A Survey Of Practical Haskell: Parsing, Interpreting, And Testing, Parker Landon
A Survey Of Practical Haskell: Parsing, Interpreting, And Testing, Parker Landon
Honors Projects
Strongly typed pure functional programming languages like Haskell have historically been confined to academia as vehicles for programming language research. While features of functional programming have greatly influenced mainstream programming languages, the imperative programming style remains pervasive in practical software development. This paper illustrates the practical utility of Haskell and pure functional programming by exploring “hson,” a scripting language for processing JSON developed in Haskell. After introducing the relevant features of Haskell to the unfamiliar reader, this paper reveals how hson leverages functional programming to implement parsing, interpreting, and testing. By showcasing how Haskell’s language features enable the creation of …
Csc 71010/Csci 77100: Programming Languages/Software Engineering, Raffi Khatchadourian
Csc 71010/Csci 77100: Programming Languages/Software Engineering, Raffi Khatchadourian
Open Educational Resources
No abstract provided.
Introduction, Raffi Khatchadourian
Working With Control-Flow Graphs, Raffi Khatchadourian
Working With Control-Flow Graphs, Raffi Khatchadourian
Open Educational Resources
No abstract provided.
Reengineering And Refactoring, Raffi Khatchadourian
Reengineering And Refactoring, Raffi Khatchadourian
Open Educational Resources
No abstract provided.
Building An Ast Eclipse Plug-In, Raffi Khatchadourian
Building An Ast Eclipse Plug-In, Raffi Khatchadourian
Open Educational Resources
Complete the Building an AST Eclipse Plug-in assignment. Once it works, find a medium-sized open-source Java project to run your plugin on. You may want to explore GitHub. Import the project into Eclipse and run your plug-in on it. Report on the following, which may require you to change some of the source code so that it is convenient:
- Project name.
- Project URL.
- Project description.
- The number of classes in the project.
- The number of user-defined methods in the project.
- For each class, the number of method calls.
- Statistics about the method calls:
- The total number of method calls …
Wala Quick Start, Raffi Khatchadourian
Wala Quick Start, Raffi Khatchadourian
Open Educational Resources
Setting up and trying the TJ Watson Library for Analysis (WALA).
Model Based Systems Engineering With A Docs-As-Code Approach For The Sealion Cubesat Project, Kevin Chiu, Sean Marquez, Sharanabasaweshwara Asundi
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 Khatchadourian
Eclipse, Osgi, And The Java Model, Raffi Khatchadourian
Open Educational Resources
No abstract provided.
Abstract Syntax Trees (Asts) And The Visitor Pattern, Raffi Khatchadourian
Abstract Syntax Trees (Asts) And The Visitor Pattern, Raffi Khatchadourian
Open Educational Resources
No abstract provided.
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
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 Khatchadourian, Hidehiko Masuhara
Automated Refactoring Of Legacy Java Software To Default Methods, Raffi 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
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
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é
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 …
Mind Change Speed-Up For Learning Languages From Positive Data, Sanjay Jain, Efim Kinber
Mind Change Speed-Up For Learning Languages From Positive Data, Sanjay Jain, Efim Kinber
School of Computer Science & Engineering Faculty Publications
Within the frameworks of learning in the limit of indexed classes of recursive languages from positive data and automatic learning in the limit of indexed classes of regular languages (with automatically computable sets of indices), we study the problem of minimizing the maximum number of mind changes by a learner on all languages with indices not exceeding . For inductive inference of recursive languages, we establish two conditions under which can be made smaller than any recursive unbounded non-decreasing function. We also establish how is affected if at least one of these two conditions does not hold. In the case …
Freedom Of Choice As A Motivational Factor In Active Learning, Atanas Radenski
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 …
Python As A Teaching Tool, Jason Schultz
Python As A Teaching Tool, Jason Schultz
Honors Capstones
Capstone submitted as a graduate requirement for the BSU Honors Program.
The Student Scholarship And Creative Achievement Day Application Software, Charles Alan Hofer
The Student Scholarship And Creative Achievement Day Application Software, Charles Alan Hofer
Honors Capstones
Capstone submitted as a graduation requirement for the BSU Honors Program.
The Partial Evaluation Approach To Information Personalization, Naren Ramakrishnan, Saverio Perugini
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 …
Messaging Application, Hooi Phaik Yew
Messaging Application, Hooi Phaik Yew
Student Works (2000-2009)
Statistics have shown that more and more people are switching to WAP (Wireless Application Protocol) handphones and most people would have heard of WAP before. Undeniably WAP's future is bright and WAP applications prospects are even better. This alone has encouragrd many programmers into developing WAP applications. Study had shown that this is true in part of the world with more and more hooking up to WAP hand phones. Internet Messaging programs have existed for a long time. Currently there's no WAP Messaging Application (WAP-MA) but it's just a matter of time before somebody invented it. This project is involved …
Java’S Insecure Parallelism, Per Brinch Hansen
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
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
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
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 …
Is Oberon As Simple As Possible?, Atanas Radenski
Is Oberon As Simple As Possible?, Atanas Radenski
Mathematics, Physics, and Computer Science Faculty Books and Book Chapters
The design of the programming language Oberon was led by the quote by Albert Einstein: 'make it as simple as possible, but not simpler'. The objective of this paper is to analyze some design solutions and propose alternatives which could both simplify and strengthen the language without making it simpler than possible. The paper introduces one general concept, the module type, which can be used to represent records, modules, and eventually procedures. Type extension is redefined in terms of component nesting and incomplete designators. As a result, type extension supports multiple inheritance.
Introducing Objects And Parallelism To An Imperative Programming Language, Atanas Radenski
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 …