Sigma Lisp Σλ Sam Davis Nick Alexander. What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible.

Slides:



Advertisements
Similar presentations
Pointers.
Advertisements

C-LISP. LISP 2 Lisp was invented by John McCarthy in 1958 while he was at the Massachusetts Institute of Technology (MIT).John McCarthyMassachusetts Institute.
1 Scheme and Functional Programming Aaron Bloomfield CS 415 Fall 2005.
Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Functional Programming. Pure Functional Programming Computation is largely performed by applying functions to values. The value of an expression depends.
1 DiSTiL : A Transformation Library for Data Structures Yannis Smaragdakis.
Lisp – Introduction יעל נצר מערכות נבונות סמסטר ב' תשס"ו.
Chapter 10 Storage management
Memory Allocation. Three kinds of memory Fixed memory Stack memory Heap memory.
Introduction to Artificial Intelligence Lisp Ruth Bergman Fall 2002.
Tutorial 6 & 7 Symbol Table
Chapter 10 Storage Management Implementation details beyond programmer’s control Storage/CPU time trade-off Binding times to storage.
Environments and Evaluation
Common Lisp Derek Debruin Mark Larue Vinh Doan. Problem Domains There was a need in the early 1960s to define a programming language whose computational.
Common Lisp! John Paxton Montana State University Summer 2003.
Basic Definitions Data Structures: Data Structures: A data structure is a systematic way of organizing and accessing data. Or, It’s the logical relationship.
TES3111 October 2001 Artificial Intelligence LISP.
Guide To UNIX Using Linux Third Edition
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
Building An Interpreter After having done all of the analysis, it’s possible to run the program directly rather than compile it … and it may be worth it.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
Presentation topic : LISP Amir Shahzad MCS 3 MCC
Nifty Assignments for BlueJ Day March 1, 2006 Rathika Rajaravivarma Central Connecticut StateUniversity.
CIS Computer Programming Logic
CS 363 Comparative Programming Languages
LISP – Not just a Speech Impediment Jim Lowe. Brief History of LISP Initial development begins at the Dartmouth Summer Research Project in 1956 by Dr.
Basic Lisp CIS 479/579 Bruce R. Maxim UM-Dearborn.
Functional Programming in Scheme and Lisp. Overview In a functional programming language, functions are first class objects. You can create them, put.
Comp 245 Data Structures Linked Lists. An Array Based List Usually is statically allocated; may not use memory efficiently Direct access to data; faster.
Chapter 6 Programming Languages (2) Introduction to CS 1 st Semester, 2015 Sanghyun Park.
1 CSC 222: Computer Programming II Spring 2004 See online syllabus at: Course goals:
Interpretation Environments and Evaluation. CS 354 Spring Translation Stages Lexical analysis (scanning) Parsing –Recognizing –Building parse tree.
Programming Languages by Ravi Sethi Chapter 6: Groupings of Data and Operations.
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
SCHEME Scheme is elegant, clear, small, and powerful programming language. It is a dialect of LISP and can be classified as a semi-functional programming.
CS535 Programming Languages Chapter - 10 Functional Programming With Lists.
Chapter 1 Introduction Major Data Structures in Compiler
CS 105: LISP GRG 424 MW 1:00-2:00pm About Me Jacob Schrum: call me Jacob BS in Computer Science, Math and German at Southwestern University Currently.
Scheme Profs Tim Sheard and Andrew Black CS 311 Computational Structures.
VISUAL C++ PROGRAMMING: CONCEPTS AND PROJECTS Chapter 2A Reading, Processing and Displaying Data (Concepts)
STL CSSE 250 Susan Reeder. What is the STL? Standard Template Library Standard C++ Library is an extensible framework which contains components for Language.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Interpreters and Higher-Order Functions CSE 413 Autumn 2008 Credit: CSE341 notes by Dan Grossman.
1 Programming Languages (CS 550) Lecture 2 Summary Mini Language Interpreter Jeremy R. Johnson.
1 FP Foundations, Scheme In Text: Chapter Chapter 14: FP Foundations, Scheme Mathematical Functions Def: A mathematical function is a mapping of.
Compiler Construction CPCS302 Dr. Manal Abdulaziz.
Ada, Scheme, R Emory Wingard. Ada History Department of Defense in search of high level language around Requirements drafted for the language.
Functional Programming
CSE341: Programming Languages Lecture 17 Implementing Languages Including Closures Dan Grossman Spring 2017.
Functional Programming Languages
PRINCIPLES OF COMPILER DESIGN
Chapter 1 Introduction.
PROGRAMMING LANGUAGES
Compiler Construction (CS-636)
Chapter 1 Introduction.
Object-Orientated Programming
Emily Leland (Not Nick) Spring 2017
CSE341: Programming Languages Lecture 17 Implementing Languages Including Closures Dan Grossman Autumn 2018.
Preparing for MUPL! Justin Harjanto
FP Foundations, Scheme In Text: Chapter 14.
CSE 341 Section 7 Winter 2018 Adapted from slides by Eric Mullen, Nicholas Shahan, Dan Grossman, and Tam Dang.
CSE341: Programming Languages Lecture 17 Implementing Languages Including Closures Zach Tatlock Winter 2018.
CSE341: Programming Languages Lecture 17 Implementing Languages Including Closures Dan Grossman Spring 2016.
Adapted from slides by Nicholas Shahan and Dan Grossman
6.001 SICP Variations on a Scheme
Adapted from slides by Nicholas Shahan, Dan Grossman, and Tam Dang
Nicholas Shahan Spring 2016
CSE341: Programming Languages Lecture 17 Implementing Languages Including Closures Dan Grossman Autumn 2017.
Programming Languages and Paradigms
CSE341: Programming Languages Lecture 17 Implementing Languages Including Closures Dan Grossman Spring 2019.
Presentation transcript:

Sigma Lisp Σλ Sam Davis Nick Alexander

What is Sigma Lisp? ● New dialect of Lisp ● Designed to be as expressive as possible

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

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

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

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

Components ● Basic Data Structs ● Parser ● Libraries ● Memory Management ● Sigma Structs ● Scopes ● Eval

Basic Data Structs ● Defines structures for basic manipulation and storage of data – Array – Hash ● Controls interaction through interface ● Foundation

Sigma Structs ● Sigma specific structures – Object – Scope – Func – Cons – Num

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

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'

Scopes ● System for variable management – Stored in layers – Maps string to value ● Represents the environment of variables

Libraries ● Native functions written in C – Basic data manipulation – Control structures ● Predefined functions in Sigma – Higher level manipulation – Derived functions and macros

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

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