1 / 24

Sigma Lisp

Learn about Sigma Lisp, a new dialect of Lisp that aims to be as expressive as possible, incorporating features from the history of Lisp while addressing the changing needs of modern cross-platform applications. Discover the principles and design of Sigma Lisp, including its functional programming approach, powerful abstract tools, and memory management techniques. Explore the Sigma structs, scopes, eval components, basic data structs, parser, libraries, and memory management system.

pfore
Download Presentation

Sigma Lisp

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Σλ Sam DavisNick Alexander Sigma Lisp

  2. What is Sigma Lisp? • New dialect of Lisp • Designed to be as expressive as possible

  3. Project Overview: Why Lisp? • Lisp is a highly abstract language • S-expressions • Shared notation for code and data • Macros • Functions that return code • Lexical Scope • Easy insertion of values • Dynamic Typing

  4. Project Overview: Why Sigma? • “Onions in the varnish” • “Features” that are products of history • Language needs have changed • Cross-platform applications • OS interactions • Revive the Lisp model

  5. Project Overview: Principles • Assume a sufficiently smart programmer • Expressive enough to use and redefine itself • Time efficiency for the programmer • Language first, implementation second • “I can't do everything myself” • Nothing is sacred

  6. Project Overview: Design • Functional Programming • Test individual components independent of state • Bottom-up Design • Build from independently coded components • Link together powerful abstract tools

  7. Sigma Structs Scopes Eval Components • Basic Data Structs • Parser • Libraries • Memory Management

  8. Basic Data Structs • Defines structures for basic manipulation and storage of data • Array • Hash • Controls interaction through interface • Foundation

  9. Sigma Structs • Sigma specific structures • Object • Scope • Func • Cons • Num

  10. Parser • Translates text input into Sigma object representing the S-expression • Syntax • quote: ' • backtick: ` • comma: ,

  11. Eval • Evaluates an object returned from Parser • Symbol returns variable value • List preforms a function application • Everything else is returned • (+ a b) -> application of function '+' to values of 'a' and 'b'

  12. Scopes • System for variable management • Stored in layers • Maps string to value • Represents the environment of variables

  13. Libraries • Native functions written in C • Basic data manipulation • Control structures • Predefined functions in Sigma • Higher level manipulation • Derived functions and macros

  14. Memory Management • Hybrid reference counting and garbage collection • Emphasis on reference counting • Garbage collection acts as back up for circular structures

  15. Credits • Nick: • Primary Coding: Basic Structs, Sigma Structs, Debugging, Scope, Tests, Design Concepts • Sam: • Eval, Parser, Debugging, Tests, Diagramming, Primary Research Paper Writer, Administrative Requirements

More Related