sigma lisp Σλ sam davis nick alexander. what is sigma lisp? ● new dialect of lisp ● designed...
TRANSCRIPT
![Page 1: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/1.jpg)
Sigma Lisp
ΣλSam Davis
Nick Alexander
![Page 2: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/2.jpg)
What is Sigma Lisp?
● New dialect of Lisp● Designed to be as expressive as
possible
![Page 3: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/3.jpg)
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
![Page 4: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/4.jpg)
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
![Page 5: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/5.jpg)
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
![Page 6: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/6.jpg)
Project Overview: Design
● Functional Programming– Test individual components independent of state
● Bottom-up Design– Build from independently coded components– Link together powerful abstract tools
![Page 7: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/7.jpg)
Components
● Basic Data Structs● Parser● Libraries● Memory
Management
● Sigma Structs● Scopes● Eval
![Page 8: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/8.jpg)
Basic Data Structs
● Defines structures for basic manipulation and storage of data– Array– Hash
● Controls interaction through interface● Foundation
![Page 9: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/9.jpg)
![Page 10: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/10.jpg)
![Page 11: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/11.jpg)
![Page 12: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/12.jpg)
Sigma Structs
● Sigma specific structures– Object– Scope– Func– Cons– Num
![Page 13: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/13.jpg)
Hexadecimal Type Chart
Type Hexadecimal Reference Type Hexadecimal Reference
Nil 0x0001 Func 0x0080
Sym 0x0002 Mac 0x0100
Cons 0x0004 Meth 0x0200
Num 0x0008 Cls 0x0400
Str 0x0010 Inst 0x0800
![Page 14: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/14.jpg)
![Page 15: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/15.jpg)
![Page 16: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/16.jpg)
Parser
● Translates text input into Sigma object representing the S-expression
● Syntax– quote: '– backtick: `– comma: ,
![Page 17: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/17.jpg)
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'
![Page 18: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/18.jpg)
Scopes
● System for variable management– Stored in layers– Maps string to value
● Represents the environment of variables
![Page 19: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/19.jpg)
Libraries
● Native functions written in C– Basic data manipulation– Control structures
● Predefined functions in Sigma– Higher level manipulation– Derived functions and macros
![Page 20: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/20.jpg)
Memory Management
● Hybrid reference counting and garbage collection
● Emphasis on reference counting● Garbage collection acts as back up for
circular structures
![Page 21: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/21.jpg)
![Page 22: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/22.jpg)
![Page 23: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/23.jpg)
![Page 24: Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible](https://reader036.vdocuments.site/reader036/viewer/2022062314/56649e9e5503460f94b9f21c/html5/thumbnails/24.jpg)
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