N Programming Language

The N-Programming Language N Language team aims to develop a specification, compiler, and associated tooling for a modern high-performance systems programming language with minimal undefined behavior and expressive standard library. N seeks to enable compatibility with existing libraries and object code, allowing for zero-cost bindings to any language exposing functionality via the C calling convention. The language is designed with simplicity, performance, and programmer ergonomics in mind, delivering an experience that combines the ease of development in high-level languages with the control and bare metal performance of languages such as C, C++, or Rust.

Team Members

Victor Cushman

Victor Cushman

vsc38@drexel.edu

Shantanu Gupta

Shantanu Gupta

sg3273@drexel.edu

Michael Minnick

Michael Minnick

mam832@drexel.edu

Kimberlee Model

Kimberlee Model

tim32@drexel.edu

Siddhanathan Shanmugam

Siddhanathan Shanmugam

ss3774@drexel.edu

Andrew Shin

Andrew Shin

ass89@drexel.edu

Justin Thomas

Justin Thomas

jtt96@drexel.edu

Vivian Zhou

Vivian Zhou

yz534@drexel.edu

Screenshots

N-Lang Pipeline

N-Lang Pipeline

View Full size

The pipeline through which N-Lang source code is fed to produce executable code. It starts at the lexer, which breaks source code into the tiniest parts it can: tokens. The parser ensures arranges tokens into a grammatically validated abstract syntax tree (AST). Semantic analysis then evaluates the AST for semantic errors: everyone's least favorite compiler phase. Lastly, executable code is generated, and the user can run it.

Hello World

Hello N-Lang

View Full size

Hello World, written in N-Lang.

Example Language Specification

Example Language Specification

View Full size

Example of a language specification, similar to the N Language Specification, but small enough to fit on a single page.