← Back to Explore

Subscript: A Functional Programming Language for Scripting in Data-Driven JVM Applications

ISEF · 2022 Systems Software Second Award

Overview

Most large applications eventually require user-defined behavior to remain adaptable to different users. Common approaches to user-defined behavior are configurations (for simple behavior) and scripting (for more complex behavior). In Terra, a world generation platform for Minecraft, user-defined behavior is required to generate structures in the world. Configurations would become bulky and bloated and make implementing custom logic tedious, so a scripting language is needed. Existing scripting languages for the JVM are either lacking in features, deprecated or slow, so Subscript was created to meet the exact requirements of Terra. Subscript is a purely functional language, intentionally lacking imperative constructs such as variables (rather, values are used to ensure immutability) and iteration (recursion is used instead). Subscript is a compiled language, compiling to JVM bytecode with an optimizing compiler designed to eliminate dead code and precompute expressions whenever possible. This allows it to perform equally to compiled Java code, drastically exceeding the performance of interpreted languages. Subscript was tested iteratively as language features were developed, with test scripts being written for specific language features. Available for easy inclusion in any project as a Maven/Gradle dependency, Subscript met all requirements for Terra, and is also useful to any other JVM application which requires complex user-defined behavior. It is also potentially useful as a teaching tool; functional programming is generally not taught due to its complexity, Subscript is a simple purely functional programming language that could be used as a stepping stone.

Awards (3)

  • Second Award of $2,000 $2,000
  • Oracle Academy: Award of $5,000 for outstanding project in the systems software category. $5,000
  • Association for Computing Machinery: Fourth Award of $500 $500

Competition history

  • ISEF 2022 Systems Software · Entry SOFT054 · Atlanta, Georgia, United States

Resources

Related projects

Closest projects by meaning, across every fair and year in the corpus.

Source: Regeneron International Science and Engineering Fair

Save projects to your library

Sign in with Google to keep track of projects you find interesting, organized into folders. Browsing stays public.

Continue with Google