Zenith: Type Safe, Functional Programming Language for Lua

187378-Thumbnail Image.png
Description
This paper introduces Zenith, a statically typed, functional programming language that compiles to Lua modules. The goal of Zenith is to be used in tandem with Lua, as a secondary language, in which Lua developers can transition potentially unsound programs

This paper introduces Zenith, a statically typed, functional programming language that compiles to Lua modules. The goal of Zenith is to be used in tandem with Lua, as a secondary language, in which Lua developers can transition potentially unsound programs into Zenith instead. Here developers will be ensured a set of guarantees during compile time, which are provided through Zenith’s language design and type system. This paper formulates the reasoning behind the design choices in Zenith, based on prior work. This paper also provides a basic understanding and intuitions on the Hindley-Milner type system used in Zenith, and the functional programming data types used to encode unsound functions. With these ideas combined, the paper concludes on how Zenith can provide soundness and runtime safety as a language, and how Zenith may be used with Lua to create safe systems.
Date Created
2023
Agent

Coda: Functional Reactive Audio Development

165392-Thumbnail Image.png
Description
Programming front-end human computer interfaces follows a unique approach of iterative design and testing to produce a creative model envisioned by the developer and designer. Small but frequent changes to visual or audio aspects of the program are commonplace in

Programming front-end human computer interfaces follows a unique approach of iterative design and testing to produce a creative model envisioned by the developer and designer. Small but frequent changes to visual or audio aspects of the program are commonplace in order to implement different design ideas, implementations, and adjustments. Functional Reactive Programming (FRP) acts as a compelling programming paradigm towards this iterative design process, following its strength in utilizing time-varying values. Therefore, this thesis will introduce Coda, a Visual Programming Language (VPL) focused on developing audio interfaces using FRP. Coda focuses on the goal of streamlining audio interface prototyping and development, through two primary features: rapid but sensible code hot-reloading, and the use of time and I/O as an interactive development tool. These features allow Coda to greatly reduce the development cycle time commonly seen in typical, text-based programming languages. Coda also comes in its own integrated development environment (IDE) in the form of a web-application.
Date Created
2022-05
Agent

Coda: Functional Reactive Audio Development

165391-Thumbnail Image.png
Description
Programming front-end human computer interfaces follows a unique approach of iterative design and testing to produce a creative model envisioned by the developer and designer. Small but frequent changes to visual or audio aspects of the program are commonplace in

Programming front-end human computer interfaces follows a unique approach of iterative design and testing to produce a creative model envisioned by the developer and designer. Small but frequent changes to visual or audio aspects of the program are commonplace in order to implement different design ideas, implementations, and adjustments. Functional Reactive Programming (FRP) acts as a compelling programming paradigm towards this iterative design process, following its strength in utilizing time-varying values. Therefore, this thesis will introduce Coda, a Visual Programming Language (VPL) focused on developing audio interfaces using FRP. Coda focuses on the goal of streamlining audio interface prototyping and development, through two primary features: rapid but sensible code hot-reloading, and the use of time and I/O as an interactive development tool. These features allow Coda to greatly reduce the development cycle time commonly seen in typical, text-based programming languages. Coda also comes in its own integrated development environment (IDE) in the form of a web-application.
Date Created
2022-05
Agent