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

Articles 1 - 9 of 9

Full-Text Articles in Programming Languages and Compilers

Designing Programming Languages For Writing Maintainable Software, Aaron Friesen May 2023

Designing Programming Languages For Writing Maintainable Software, Aaron Friesen

Honors Theses

Maintainability is crucial to the long-term success of software projects. Among other factors, it is affected by the programming language in which the software is written. Programming language designers should be conscious of how their design decisions can influence software maintainability. Non-functional properties of a language can affect the readability of source code in ways beyond the control of programmers. Language features can cause or prevent certain classes of bugs, and runtime issues especially can require significant maintenance effort. Tools external to the language, especially those developed and distributed by language implementers, can aid in the creation of maintainable software. …


Generative Art, Caleb Harmon Apr 2021

Generative Art, Caleb Harmon

Honors Theses

Generative Art is systems that produce complex structures and visuals through computation.


Project Emerald: Designing A Language To Be Fun, Addison Bostian Jan 2018

Project Emerald: Designing A Language To Be Fun, Addison Bostian

Honors Theses

I designed the language described here to be, first and foremost, fun. I wanted it to be a programmer's go-to language, the language that you pick up for personal projects or utilities. I felt the way to make this happen was to make it fun to write in. In order to accomplish this, the language derives from several existing languages, taking what I believed were the best parts of each of them. Combining principles from multiple languages sounds like a good idea, I quickly ran into problems that would make developing a compiler extremely difficult, if not impossible. Because of …


Procedural Generation: An Algorithmic Analysis Of Video Game Design And Level Creation, Logan Bond Jan 2017

Procedural Generation: An Algorithmic Analysis Of Video Game Design And Level Creation, Logan Bond

Honors Theses

Procedural generation is a method for generating mass quantities of data algorithmically rather than manually. One perfect example of this is the recently famous No Man’s Sky, a video game where the entire marketing scheme was structured around its procedurally generated universe. The game’s trailer and advertisements promised its players 18,446,744,073,709,551,616 unique planets[1], all of which were procedurally generated. In other words, the developers did not create exclusive profiles for every single planet, but instead programmed the game in such a way that the planets were built from the code. This method of content creation is the …


Software Improvements To Parint, A Parallel Integration Software Package, Lawrence Cuneaz Apr 2016

Software Improvements To Parint, A Parallel Integration Software Package, Lawrence Cuneaz

Honors Theses

The best software is easy to configure and compile, is expandable and is well tested. Development of the ParInt software package for parallel integration stopped a number of years ago. When handed the software, parts of the package no longer configured or compiled consistently. Furthermore it relied on one random number generator and had no functional testing. The team tuned the auto configuration so that the program would configure and build on current systems, created expandable functionality to add new random number generators and created two functional test packs. Now ParInt can be developed with confidence knowing that it compiles …


Detecting Malicious Javascript, Matthew F. Der Apr 2010

Detecting Malicious Javascript, Matthew F. Der

Honors Theses

The increased use of the World Wide Web and JavaScript as a scripting language for Web pages have made JavaScript a popular attack vector for infecting users' machines with malware. Additionally, attackers often obfuscate their code to avoid detection, which heightens the challenge and complexity of automated defense systems. We present two analyses of malicious scripts and suggest how they could be extended into intrusion detection systems. For our analyses we use a sample of deobfuscated malicious and benign scripts collected from actual Web sites. First, using our malicious sample, we perform a manual analysis of attack signatures, identifying four …


Jess – A Java Security Scanner For Eclipse, Russell Spitler Jan 2005

Jess – A Java Security Scanner For Eclipse, Russell Spitler

Honors Theses

Secure software is the responsibility of every developer. In order to help a developer with this responsibility there are many automated source code security auditors. These tools perform a variety of functions, from finding calls to insecure functions to poorly generated random numbers. These programs have existed for years and perform the security audit with varying degrees of success.

Largely missing in the world of programming is such a security auditor for the Java programming language. Currently, Fortify Software produces the only Java source code security auditor; this is a commercially available package.

This void is what inspired JeSS, Java …


Masterpiece: Computer-Generated Music Through Fractals And Genetic Theory, Amanda Broyles Jan 2000

Masterpiece: Computer-Generated Music Through Fractals And Genetic Theory, Amanda Broyles

Honors Theses

A wide variety of computer-generated music exists. I have writ.ten a program which will generate music by using genetic theory and fractals. The genetic theory is used to mold input pieces into a musical motif. The motif is then elaborated by the fractal formula into a composition. A brief introduction to the world of genetic theory and fractals is given. Analysis of a musical work produced in this manner shows coherent patterns and also emotion.


Computer Programming, Gary Rice Jan 1970

Computer Programming, Gary Rice

Honors Theses

The chief advantage of the digital computer is that it can be instructed to perform complex or repetitive arithmetical operations in a very short period of time. Any sequence of operations which can be fully analyzed can theoretically be done by a computer. The method of instruction takes the form of various precisely defined computer languages. The programs to be discussed here were written in a Fortran language, Fortran being a contraction of Formula Translation. There are at least four variations of Fortran, but the differences are relatively minor. Fortran is basically intended for scientific and engineering purposes. The programs …