<-- Back to Andy Balaam Home

Subs.Subs History

Hide minor edits - Show changes to output

February 01, 2011, at 07:29 PM by 89.243.44.116 -
Changed lines 30-31 from:
to:
* quoting using ' or (quote ...)
Changed lines 99-100 from:
Subs is Copyright (C) 2010 Andy Balaam
to:
Subs is Copyright (C) 2010, 2011 Andy Balaam
January 18, 2011, at 09:10 PM by 78.147.232.205 -
Added line 72:
tar -xzf subs-scheme-*
January 18, 2011, at 09:00 PM by 78.147.232.205 -
Changed lines 17-18 from:
* many missing functions e.g. cadr, filter
to:
* some missing functions
Changed line 27 from:
* higher-level procedures e.g. map
to:
* higher-level procedures e.g. map, filter, for-each
January 13, 2011, at 09:13 PM by 89.243.34.175 -
Changed line 54 from:
> (load "painter/painer.scm")
to:
> (load "painter/painter.scm")
January 13, 2011, at 07:59 PM by 89.243.34.175 -
Changed lines 61-62 from:
Attach:square-limit.png
to:

Attach:square-limit.png
January 13, 2011, at 07:59 PM by 89.243.34.175 -
Deleted line 60:
January 13, 2011, at 07:58 PM by 89.243.34.175 -
Added lines 54-61:
> (load "painter/painer.scm")
> (define letter-a (segments->painter (list
. (make-segment (make-vect 0 0) (make-vect 0.5 1))
. (make-segment (make-vect 0.5 1) (make-vect 1 0))
. (make-segment (make-vect 0.25 0.5) (make-vect 0.75 0.5)))))
letter-a
> (svg-document (square-limit letter-a 4))
January 13, 2011, at 07:56 PM by 89.243.34.175 -
Changed lines 54-55 from:
http://www.artificialworlds.net/wiki/uploads/Subs/square-limit.svg?.png
to:
Attach:square-limit.png
January 13, 2011, at 07:53 PM by 89.243.34.175 -
Added lines 54-55:
http://www.artificialworlds.net/wiki/uploads/Subs/square-limit.svg?.png
October 11, 2010, at 03:01 PM by 84.13.161.163 -
Changed lines 17-18 from:
* no higher-level data operations e.g. list, cadr etc.
to:
* many missing functions e.g. cadr, filter
Deleted lines 21-22:
* simple data structures using cons, car and cdr
* predicates like and, or and not
Added lines 26-28:
* data structures using cons, car, cdr, list etc.
* higher-level procedures e.g. map
* predicates like and, or and not
Deleted line 13:
* lack of basic data operators e.g. cons, car, cdr, list
Changed lines 17-18 from:
to:
* no higher-level data operations e.g. list, cadr etc.
Added line 22:
* simple data structures using cons, car and cdr
September 30, 2010, at 04:32 PM by 89.243.163.188 -
Changed lines 7-8 from:
The implementation is incomplete and naive, and is intended mainly to help me understand Scheme and functional programming better.
to:
The implementation is incomplete and naive, and is intended mainly to help me understand Scheme and functional programming better. It depends on BOOST (and STL).
September 30, 2010, at 04:25 PM by 89.243.163.188 -
Changed lines 14-15 from:
* lack of basic types e.g. strings
* lack of basic
operators e.g. cons, car, cdr, list
to:
* lack of basic data operators e.g. cons, car, cdr, list
Changed line 20 from:
* integer and decimal types (finite precision)
to:
* integer and decimal types (finite precision) and strings
Changed line 30 from:
* most built-ins implemented in C++, which may some day improve performance
to:
* most built-ins implemented in C++, which might some day provide good performance
Changed lines 54-57 from:
Install scons, g++ and (optionally) valgrind:

sudo apt-get install scons g++ valgrind
to:
Install scons, g++, BOOST and (optionally) valgrind:

sudo apt-get install scons g++ libboost-dev valgrind
Added lines 68-69:
sudo apt-get install scons g++ libboost-dev valgrind
Changed line 24 from:
* definition of symbols and functions, and let
to:
* definition of symbols and functions, including via let
Changed line 15 from:
* lack of basic operators e.g. cons, car, cdr, list, let
to:
* lack of basic operators e.g. cons, car, cdr, list
Changed line 24 from:
* definition of symbols and functions
to:
* definition of symbols and functions, and let
August 30, 2010, at 01:18 PM by 89.240.205.196 -
Changed lines 65-68 from:
!!Code

To try it out:
to:
!!Development

To get the latest code:
August 30, 2010, at 01:14 PM by 89.240.205.196 -
Changed lines 9-10 from:
I aim to implement enough to be able to run every code sample in [[http://mitpress.mit.edu/sicp/full-text/book/book.html|Structure and Interpretation of Computer Programs]].
to:
I aim to implement enough to be able to run every code sample in [[http://mitpress.mit.edu/sicp/full-text/book/book.html|Structure and Interpretation of Computer Programs]]. Versions of Subs are named after the latest chapter of SICP whose code examples work correctly in the interpreter.

Subs is only tested on Linux, but should work on other platforms
.
Changed lines 14-15 from:
* lack of basic types e.g. strings, decimal numbers
* lack of basic operators
e.g. /, cons, car, cdr, list, let
to:
* lack of basic types e.g. strings
* lack of basic operators e.g. cons, car, cdr, list, let
Deleted lines 16-17:
* lexer only works reliably with expressions in the usual form
* read-eval-print loop only handles single lines
Changed lines 21-22 from:
* integer types
* operators such as +, -, *
to:
* integer and decimal types (finite precision)
* operators such as +, -,
*, /
* predicates like and, or and not
Changed line 26 from:
* if
to:
* if and cond
Changed line 31 from:
* most built-ins implemented in C++, which may improve performance
to:
* most built-ins implemented in C++, which may some day improve performance
Added lines 53-64:
!!Download

Install scons, g++ and (optionally) valgrind:

sudo apt-get install scons g++ valgrind

Download subs-scheme-x.x.x.tar.gz from http://sourceforge.net/projects/subs-scheme/files/ .

cd subs-scheme-*
scons
./subs
August 15, 2010, at 08:57 AM by 78.144.199.218 -
Deleted lines 32-34:
Upcoming features include:
* tail-call optimisation
August 15, 2010, at 08:56 AM by 78.144.199.218 -
Changed lines 66-67 from:
[[http://subs-scheme.git.sourceforge.net/git/gitweb.cgi?p=subs-scheme/subs-scheme;a=tree|Browse Subs source via gitweb]]
to:
* [[http://subs-scheme.git.sourceforge.net/git/gitweb.cgi?p=subs-scheme/subs-scheme;a=tree|Browse Subs source via gitweb]]

To visit the forums or log a bug:

* [[http://sourceforge.net/projects/subs-scheme/|Subs sourceforge page
]]
August 15, 2010, at 08:54 AM by 78.144.199.218 -
Changed lines 68-70 from:
!!License
to:
!!Copyright

Subs is Copyright (C) 2010 Andy Balaam

Subs is Free Software released under the terms of the GNU General Public
License version 2 or later.

Subs comes with NO WARRANTY.

See the file [[http://subs-scheme.git.sourceforge.net/git/gitweb.cgi?p=subs-scheme/subs-scheme;a=blob_plain;f=COPYING.txt;hb=HEAD|COPYING.txt]] for more information.
August 15, 2010, at 08:19 AM by 78.144.199.218 -
Changed lines 66-67 from:
[http://subs-scheme.git.sourceforge.net/git/gitweb.cgi?p=subs-scheme/subs-scheme;a=tree|Browse Subs source via gitweb]
to:
[[http://subs-scheme.git.sourceforge.net/git/gitweb.cgi?p=subs-scheme/subs-scheme;a=tree|Browse Subs source via gitweb]]
August 15, 2010, at 08:18 AM by 78.144.199.218 -
Changed lines 55-57 from:
to:
!!Code

To try it out:

git clone git://subs-scheme.git.sourceforge.net/gitroot/subs-scheme/subs-scheme
cd subs-scheme
scons
./subs

To browse the code:

[http://subs-scheme.git.sourceforge.net/git/gitweb.cgi?p=subs-scheme/subs-scheme;a=tree|Browse Subs source via gitweb]

!!License
August 15, 2010, at 08:15 AM by 78.144.199.218 -
Added lines 3-4:
!!Introduction
Added lines 9-10:
I aim to implement enough to be able to run every code sample in [[http://mitpress.mit.edu/sicp/full-text/book/book.html|Structure and Interpretation of Computer Programs]].
Changed lines 18-19 from:
to:
* no mutable data (hence the name)
Changed lines 27-28 from:
to:
* tail-call optimisation
Changed lines 36-37 from:
Example sessions:
to:
!!Examples
Changed lines 46-47 from:
<<PROCEDURE user-defined: square>>
to:
<<COMPOUND-PROCEDURE square>>
August 05, 2010, at 03:22 AM by 195.212.29.75 -
Changed line 11 from:
* lexer only works reliably with expressions in the normal form
to:
* lexer only works reliably with expressions in the usual form
August 05, 2010, at 03:22 AM by 195.212.29.75 -
Changed lines 13-14 from:
to:
* no def-syntax
August 05, 2010, at 03:20 AM by 195.212.29.75 -
Changed lines 11-13 from:
to:
* lexer only works reliably with expressions in the normal form
* read-eval-print loop only handles single lines
August 05, 2010, at 03:17 AM by 195.212.29.75 -
Changed lines 22-23 from:
to:
* written using test-driven development throughout
August 05, 2010, at 03:16 AM by 195.212.29.75 -
Added lines 25-47:

Example sessions:

> (define foo 3)
foo
> foo
3

> (define (square x) (* x x))
square
> square
<<PROCEDURE user-defined: square>>

> (define (factorial n) (if (= n 1) 1 (* n (factorial (- n 1)))))
factorial
> (factorial 3)
6
> (factorial 4)
24


August 05, 2010, at 03:12 AM by 195.212.29.75 -
Added lines 20-22:
Points of interest:
* most built-ins implemented in C++, which may improve performance
August 05, 2010, at 03:11 AM by 195.212.29.75 -
Changed line 14 from:
* operations such as +, -, *
to:
* operators such as +, -, *
August 05, 2010, at 03:11 AM by 195.212.29.75 -
Added lines 1-2:
!Subs
August 05, 2010, at 03:09 AM by 195.212.29.75 -
Added lines 1-19:
Subs is a Scheme Lisp interpreter written in C++.

The implementation is incomplete and naive, and is intended mainly to help me understand Scheme and functional programming better.

The most glaring limitations are:
* lack of basic types e.g. strings, decimal numbers
* lack of basic operators e.g. /, cons, car, cdr, list, let
* performance is likely to be poor due to frivolous use of dynamic memory

Existing features include:
* integer types
* operations such as +, -, *
* definition of symbols and functions
* lambda functions
* if
* support for recursive procedures

Upcoming features include:
* tail-call optimisation
Edit | History | Print | Recent Changes | Search | Admin Page last modified on February 01, 2011, at 07:29 PM