Open Access. Powered by Scholars. Published by Universities.®
Programming Languages and Compilers Commons™
Open Access. Powered by Scholars. Published by Universities.®
- Discipline
-
- Software Engineering (4)
- Graphics and Human Computer Interfaces (3)
- Artificial Intelligence and Robotics (2)
- Applied Mathematics (1)
- Art Education (1)
-
- Arts and Humanities (1)
- Audio Arts and Acoustics (1)
- Computer Engineering (1)
- Computer and Systems Architecture (1)
- Digital Humanities (1)
- Education (1)
- Engineering (1)
- Hardware Systems (1)
- Numerical Analysis and Computation (1)
- OS and Networks (1)
- Other Applied Mathematics (1)
- Other Computer Sciences (1)
- Keyword
-
- Source code (2)
- AI (1)
- Android (1)
- Artificial Intelligence (1)
- Circuit Python (1)
-
- Code (1)
- Comment Classification (1)
- Compiler (1)
- Computer Science (1)
- Concepts (1)
- Domain-specific language (1)
- Embedded Systems (1)
- Exploration (1)
- Game (1)
- Generic programming (1)
- Java (1)
- LLVM (1)
- LLVM IR (1)
- Machine Learning (1)
- Manipulation (1)
- Metaprogramming (1)
- Multidimensional Popularity (1)
- Music Generation (1)
- Open-Source Software (1)
- Openflow (1)
- Packet switching (1)
- Parser (1)
- Programming (1)
- Programming Language Evolution (1)
- Programming Languages (1)
Articles 1 - 9 of 9
Full-Text Articles in Programming Languages and Compilers
A Decade Of Programming Languages: Trends In Popularity And Influence, Jonathan C. Erb
A Decade Of Programming Languages: Trends In Popularity And Influence, Jonathan C. Erb
Williams Honors College, Honors Research Projects
Programming languages play a central role in open-source software ecosystems, yet their adoption, visibility, and influence shift over time as technologies, developer communities, and industry practices evolve. The study aims to investigate long-term trends in programming-language usage on GitHub from 2014 through 2024, focusing on ten major languages that represent diverse domains and ecosystems. Using repository metadata, engagement metrics such as stars and forks, and language-level code statistics measured with cloc, the analysis will examine changes in repository creation, code contribution volume, and popularity. Since popularity remains an unsettled and multidimensional concept, part of this research involves determining how it …
Ultrasonic Sensor-Based Sound Synthesis Using Raspberry Pi Pico W, Niraj Jaishwal
Ultrasonic Sensor-Based Sound Synthesis Using Raspberry Pi Pico W, Niraj Jaishwal
Williams Honors College, Honors Research Projects
At the intersection of Human Computer Interaction and digital art, this project transforms simple motion into musical expression. It explores an interactive real-time sound synthesis system using ultrasonic sensors to generate continuous audio. The objective is to design a system that maps physical distances into musical parameters such as pitch and amplitude, which will create a responsive audio environment. Two ultrasonic sensors are used in combination with the Raspberry Pi Pico W microcontroller running CircuitPython and Adafruit Audio Hat for real-time sound output. One sensor controls the pitch of the generated tone, while the other controls volume. This enables expressive …
The Amethyst Compiler, David Britton
The Amethyst Compiler, David Britton
Williams Honors College, Honors Research Projects
Amethyst is a custom programming language, whose compiler translates Amethyst source code into textual LLVM IR, which can, in turn, be compiled by LLVM back-ends to produce executable binaries. This paper explores compiler concepts and implementation details for the Amethyst compiler, describes the LLVM architecture, and provides an overview of some Amethyst language features.
Source Code Comment Classification Artificial Intelligence, Cole Sutyak
Source Code Comment Classification Artificial Intelligence, Cole Sutyak
Williams Honors College, Honors Research Projects
Source code comment classification is an important problem for future machine learning solutions. In particular, supervised machine learning solutions that have largely subjective data labels but are difficult to obtain the labels for. Machine learning problems are problems largely because of a lack of data. In machine learning solutions, it is better to have a large amount of mediocre data than it is to have a small amount of good data. While the mediocre data might not produce the best accuracy, it produces the best results because there is much more to learn from the problem.
In this project, data …
Android Game, Ryan Weston
Android Game, Ryan Weston
Williams Honors College, Honors Research Projects
The purpose of this project was to create an endless runner game for Android coded in Java and XML and developed in Android Studio. In the game, the player controls a frog that jumps from lily pad to lily pad to avoid logs moving toward the player. The player must also maneuver the lily pads as they can randomly disappear. There are three difficulties in the game that vary the disappearance rate of lily pads as well as the frequency and acceleration rate of the log obstacles. The game also has a scoring system and saves the high score locally …
Elephant 2000: A Programming Language For Remembering The Past And Building On It, Kerry J. Holmes
Elephant 2000: A Programming Language For Remembering The Past And Building On It, Kerry J. Holmes
Williams Honors College, Honors Research Projects
Elephant 2000 is a programming language to specify programs that accept user speech as text inputs and outputs speech text. The inputs and outputs are based on Dialogue Act theory which describes several forms of speech outputs, such as requests, questions, and answers. The language also relies on Named Entity Recognition to determine what types of objects a user references. These entities include persons, locations, times and so on. Using these attributes of user speech, a program is able to perform simple rule matching and pattern recognition to respond to input. The result is a programming language with English like …
Pip: An Abstract Dataplane And Virtual Machine, Samuel Goodrick
Pip: An Abstract Dataplane And Virtual Machine, Samuel Goodrick
Williams Honors College, Honors Research Projects
We present an abstract machine and S-expression-based programming language to describe OpenFlow-style software-defined networking. The implemented Pip virtual machine and language provide facilities for packet decoding, safely writing and setting bitfields within packets, and switching based on packet contents. We have outlined an abstract syntax and structural operational semantics for Pip, thus allowing Pip programs to have predictable and provable properties. Pip allows for easy and safe access and writing to packet fields, as well as a programmable packet pipeline that will rarely stall.
Srcmx: A Gui Application For Srcml, Brian Kovacs
Srcmx: A Gui Application For Srcml, Brian Kovacs
Williams Honors College, Honors Research Projects
srcMX is a GUI application that utilizes the srcML command-line tool to convert and display source code using the srcML format. The goal is for srcMX to promote the manipulation and exploration of source code using srcML. I also hope that the user-friendly nature inherent to GUI applications allows srcMX to introduce a larger audience to the many features offered by srcML. The application is written in C++ using the Qt and Qt Quick frameworks.
Constrained Templates In C++, Braden L. Obrzut
Constrained Templates In C++, Braden L. Obrzut
Williams Honors College, Honors Research Projects
This paper seeks to answer what C++ concepts are, the benefit they provide to C++ programmers, and where we would like to go looking ahead. To accomplish this, it will examine the current state of generic programming in C++, look at what other languages do to avoid the issue, and how concepts can be used to solve the problem in a manner which provides more freedom to the programmer. In the general sense, concepts allow the programmer to specify preconditions which must be satisfied on the inputs to generic code. The desire being to fully describe what is required by …