Gemini: A Functional Programming Language for Hardware Description

11/10/2019
by   Aditya Srinivasan, et al.
0

This paper presents Gemini, a functional programming language for hardware description that provides features such as parametric polymorphism, recursive datatypes, higher-order functions, and type inference for higher expressivity compared to modern hardware description languages. Gemini demonstrates the theory and implementation of novel type-theoretical concepts through its unique type system consisting of multiple atomic kinds and dependent types, which allows the language to model both software and hardware constructs safely and perform type inference through multi-staged compilation. The primary technical results of this paper include formalizations of the Gemini grammar, typing rules, and evaluation rules, a proof of safety of Gemini's type system, and a prototype implementation of the compiler's semantic analysis phase.

READ FULL TEXT

page 15

page 16

research
04/12/2022

Functional Pearl: Dependent type inference via free higher-order unification

Many type theories rely significantly on dependent types. Implementing a...
research
07/10/2019

HTCC: Haskell to Handel-C Compiler

Functional programming languages, such as Haskell, enable simple, concis...
research
02/23/2021

A tier-based typed programming language characterizing Feasible Functionals

The class of Basic Feasible Functionals BFF_2 is the type-2 counterpart ...
research
11/28/2018

Adventures in Formalisation: Financial Contracts, Modules, and Two-Level Type Theory

We present three projects concerned with applications of proof assistant...
research
07/19/2020

Approaches to the implementation of generalized complex numbers in the Julia language

In problems of mathematical physics, to study the structures of spaces u...
research
12/15/2022

Higher-order Games with Dependent Types

This paper generalises the notion of a higher-order game, by accounting ...
research
12/31/2019

Introduction to Rank-polymorphic Programming in Remora (Draft)

Remora is a higher-order, rank-polymorphic array-processing programming ...

Please sign up or login with your details

Forgot password? Click here to reset