← Back to Explore

Domain Specific Language for Differential Equations with Scott-Strachey Semantics

ISEF · 2021 Mathematics

Overview

Domain Specific Languages (DSL) give the user a rigorous environment for solving problems in a specific domain, in this case differential equations. Scott-Strachey semantics (also known as denotational semantics) are important in computing and pure mathematics because they formulate the meaning of programming languages by constructing denotations (mathematical objects) that describe the meanings of expressions from the language. The main denotation in our DSL is the auto differentiating algorithm, which includes its own Expression Sublanguage for the calculus, and creates an intuitive environment for any user wanting to solve differential equations through the methods of Forward Mode Auto Differentiation. The main strategy for the algorithm was to develop a dual numbers data type that will deconstruct the user’s input and process each object into an algorithm that will differentiate the object in a certain pseudo-dual numbers domain field depending on the object, i.e. trigonometric functions. By developing an algorithm to deconstruct an input user equation, we apply the chain rule to each object in the input f(x)=g(h(x)) for g and h objects in the input, with x applying the dual numbers data type, we return a tuple composed of the original numerical value and its derivative in respect to x. Benefits include an easier to understand user interface for both beginners and mathematicians wanting to auto differentiate, including a command history, in addition to faster programming with Polish notation, an implementation in gradient descent algorithms for machine learning optimization, and a computer independent algorithm (denotations) to solve Jacobian matrices.

Competition history

  • ISEF 2021 Mathematics · Entry MATH029T

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