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

Programming languages

Discipline
Institution
Publication Year
Publication
Publication Type
File 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 Jan 2026

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

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 May 2024

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 Jan 2023

Csc 71010/Csci 77100: Programming Languages/Software Engineering, Raffi Khatchadourian

Open Educational Resources

No abstract provided.


Introduction, Raffi Khatchadourian Jan 2023

Introduction, Raffi Khatchadourian

Open Educational Resources

No abstract provided.


Working With Control-Flow Graphs, Raffi Khatchadourian Jan 2023

Working With Control-Flow Graphs, Raffi Khatchadourian

Open Educational Resources

No abstract provided.


Reengineering And Refactoring, Raffi Khatchadourian Jan 2023

Reengineering And Refactoring, Raffi Khatchadourian

Open Educational Resources

No abstract provided.


Building An Ast Eclipse Plug-In, Raffi Khatchadourian Jan 2023

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:

  1. Project name.
  2. Project URL.
  3. Project description.
  4. The number of classes in the project.
  5. The number of user-defined methods in the project.
  6. For each class, the number of method calls.
  7. Statistics about the method calls:
    1. The total number of method calls …


Wala Quick Start, Raffi Khatchadourian Jan 2023

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 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 Khatchadourian Jan 2022

Eclipse, Osgi, And The Java Model, Raffi Khatchadourian

Open Educational Resources

No abstract provided.


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

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 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 Khatchadourian, Hidehiko Masuhara May 2017

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


Mind Change Speed-Up For Learning Languages From Positive Data, Sanjay Jain, Efim Kinber Jun 2013

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


Python As A Teaching Tool, Jason Schultz Apr 2009

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 Apr 2007

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


Messaging Application, Hooi Phaik Yew Jan 2001

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


Is Oberon As Simple As Possible?, Atanas Radenski Jan 1994

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