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

Articles 1 - 4 of 4

Full-Text Articles in Programming Languages and Compilers

Functional Programming For Systems Software: Implementing Baremetal Programs In Habit, Donovan Ellison Jul 2020

Functional Programming For Systems Software: Implementing Baremetal Programs In Habit, Donovan Ellison

University Honors Theses

Programming in a baremetal environment, directly on top of hardware with very little to help manage memory or ensure safety, can be dangerous even for experienced programmers. Programming languages can ease the burden on developers and sometimes take care of entire sets of errors. This is not the case for a language like C that will do almost anything you want, for better or worse. To operate in a baremetal environment often requires direct control over memory, but it would be nice to have that capability without sacrificing safety guarantees. Rust is a new language that aims to fit this …


The Nax Language: Unifying Functional Programming And Logical Reasoning In A Language Based On Mendler-Style Recursion Schemes And Term-Indexed Types, Ki Yung Ahn Dec 2014

The Nax Language: Unifying Functional Programming And Logical Reasoning In A Language Based On Mendler-Style Recursion Schemes And Term-Indexed Types, Ki Yung Ahn

Dissertations and Theses

Two major applications of lambda calculi in computer science are functional programming languages and mechanized reasoning systems (or, proof assistants). According to the Curry--Howard correspondence, it is possible, in principle, to design a unified language based on a typed lambda calculus for both logical reasoning and programming. However, the different requirements of programming languages and reasoning systems make it difficult to design such a unified language that provides both. Programming languages usually extend lambda calculi with programming-friendly features (e.g., recursive datatypes, general recursion) for supporting the flexibility to model various computations, while sacrificing logical consistency. Logical reasoning systems usually extend …


Processj: A Process-Oriented Programming Language, Matthew Sowders Dec 2011

Processj: A Process-Oriented Programming Language, Matthew Sowders

UNLV Theses, Dissertations, Professional Papers, and Capstones

Java is a general purpose object-oriented programming language that has been widely adopted. Because of its high adoption rate and its lineage as a C-style language, its syntax is familiar to many programmers. The downside is that Java is not natively concurrent. Volumes have been written about concurrent programming in Java; however, concurrent programming is difficult to reason about within an object-oriented paradigm and so is difficult to get right.

occam -π is a general purpose process-oriented programming language. Concurrency is part of the theoretical underpinnings of the language. Concurrency is simple to reason about within an occam -π application …


An Investigation Into Student Reactions Towards Rad Versus Traditional Programming Environments For Novice Developers, Pansy Colkers Jan 2009

An Investigation Into Student Reactions Towards Rad Versus Traditional Programming Environments For Novice Developers, Pansy Colkers

Theses : Honours

The traditional approach to programming using text editors is widely used in many institutions to teach introductory programming. These types of traditional programming environments provide fundamental programming concepts for learning, especially in the context of novice developers. In recent years, teaching institutions have seen a trend towards the introduction of visual "drag-and-drop" rapid application development (RAD) environments for teaching novice programmers. These 'environments capture student interest in programming by allowing the construction of workable programs within a short time frame based on minimal pre-existing coding knowledge. However, some have argued that these visual RAD environments might not be suitable for …