Download presentation
Presentation is loading. Please wait.
Published byNancy Taylor Modified over 9 years ago
1
Sigma Lisp Σλ Sam Davis Nick Alexander
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
Components ● Basic Data Structs ● Parser ● Libraries ● Memory Management ● Sigma Structs ● Scopes ● Eval
8
Basic Data Structs ● Defines structures for basic manipulation and storage of data – Array – Hash ● Controls interaction through interface ● Foundation
12
Sigma Structs ● Sigma specific structures – Object – Scope – Func – Cons – Num
16
Parser ● Translates text input into Sigma object representing the S-expression ● Syntax – quote: ' – backtick: ` – comma:,
17
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'
18
Scopes ● System for variable management – Stored in layers – Maps string to value ● Represents the environment of variables
19
Libraries ● Native functions written in C – Basic data manipulation – Control structures ● Predefined functions in Sigma – Higher level manipulation – Derived functions and macros
20
Memory Management ● Hybrid reference counting and garbage collection ● Emphasis on reference counting ● Garbage collection acts as back up for circular structures
24
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.