Scheme

提供: langdev
移動: 案内検索

Category:プログラミング言語: Scheme[編集]

言語名 
Scheme
作者 
Guy Steele, Jay Sussman
開発年 
1975
ウェブサイト 

テンプレート:プログラミング言語


Gauche[編集]

Category:プログラミング言語処理系: Gauche[編集]

言語 
Scheme
処理系名 
Gauche
開発年 
ウェブサイト 
http://practical-scheme.net/gauche/index-j.html
パーサー 
処理系開発言語 
出力形式 

テンプレート:プログラミング言語処理系


Vagrantfile (使い方)[編集]

# -*- mode: ruby -*-
# vi: set ft=ruby :
  
Vagrant.configure("2") do |config|
  config.vm.box = "precise64" 
  config.vm.box_url = "http://files.vagrantup.com/precise64.box"
  config.vm.provision :shell, :inline => <<-EOS

aptitude update -y
aptitude install -y build-essential
wget 'http://downloads.sourceforge.net/project/gauche/Gauche/Gauche-0.9.3.3.tgz?r=http%3A%2F%2Fpractical-scheme.net%2Fgauche%2Fdownload-j.html&ts=1377407169&use_mirror=hivelocity' -O Gauche-0.9.3.3.tgz
tar xvf Gauche-0.9.3.3.tgz
cd Gauche-0.9.3.3
./configure
make
make install

  EOS
end

テンプレート:サンプル環境


Hello, world![編集]

vagrant@precise64:~$ cat > hello.scm
(display "Hello,world!")
(newline)
vagrant@precise64:~$ gosh hello.scm 
Hello,world!
vagrant@precise64:~$ 

Binary size[編集]

vagrant@precise64:~$ lddr() { for i in `ldd $1 | cut -d ' ' -f 3`; do echo $i; lddr $i ; done; };du -chL `lddr \`which gosh\` | sort  | uniq`
44K	/lib/x86_64-linux-gnu/libcrypt.so.1
1.8M	/lib/x86_64-linux-gnu/libc.so.6
16K	/lib/x86_64-linux-gnu/libdl.so.2
1000K	/lib/x86_64-linux-gnu/libm.so.6
136K	/lib/x86_64-linux-gnu/libpthread.so.0
52K	/usr/local/bin/gosh
5.8M	/usr/local/lib/libgauche-0.9.so.0.3
8.8M	total
vagrant@precise64:~$ 

TinyScheme[編集]

GIMPの内蔵スクリプト言語として使われているらしい。


Category:プログラミング言語処理系: TinyScheme[編集]

言語 
Scheme
処理系名 
TinyScheme
開発年 
ウェブサイト 
http://tinyscheme.sourceforge.net/
パーサー 
処理系開発言語 
出力形式 

テンプレート:プログラミング言語処理系


Vagrantfile (使い方)[編集]

# -*- mode: ruby -*-
# vi: set ft=ruby :
  
Vagrant.configure("2") do |config|
  config.vm.box = "precise64" 
  config.vm.box_url = "http://files.vagrantup.com/precise64.box"
  config.vm.provision :shell, :inline => <<-EOS

aptitude update -y
aptitude install -y build-essential
wget 'http://downloads.sourceforge.net/project/tinyscheme/tinyscheme/tinyscheme-1.41/tinyscheme-1.41.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Ftinyscheme%2Ffiles%2Ftinyscheme%2F&ts=1377415722&use_mirror=softlayer-dal' -O tinyscheme-1.41.tar.gz
tar xvf tinyscheme-1.41.tar.gz
cd tinyscheme-1.41
make DEBUG=-DInitFile=\\\\\\"\\\\/usr\\\\/local\\\\/lib\\\\/tinyscheme\\\\/init.scm\\\\\\"
install -D -m 644 init.scm /usr/local/lib/tinyscheme/init.scm
install -D scheme /usr/local/bin/scheme

  EOS
end

テンプレート:サンプル環境


Hello, world![編集]

vagrant@precise64:~$ cat > hello.scm
(display "Hello,world!")
(newline)
vagrant@precise64:~$ scheme hello.scm 
Hello,world!
vagrant@precise64:~$ 

Binary size[編集]

vagrant@precise64:~/tinyscheme-1.41$ ls -alh scheme scheme.static init.scm 
-rw-r--r-- 1 vagrant vagrant  24K Apr 14 20:08 init.scm
-rwxrwxr-x 1 vagrant vagrant 104K Aug 25 08:05 scheme
-rwxrwxr-x 1 vagrant vagrant 1.8M Aug 25 08:05 scheme.static
vagrant@precise64:~/tinyscheme-1.41$ 

Chicken[編集]

Schemeのコードを1度C言語のコードに変換する事により、ネイティブバイナリを出力する事が可能。


Category:プログラミング言語処理系: Chicken[編集]

言語 
Scheme
処理系名 
Chicken
開発年 
ウェブサイト 
http://www.call-cc.org/
パーサー 
処理系開発言語 
出力形式 

テンプレート:プログラミング言語処理系


Vagrantfile (使い方)[編集]

# -*- mode: ruby -*-
# vi: set ft=ruby :
  
Vagrant.configure("2") do |config|
  config.vm.box = "precise64" 
  config.vm.box_url = "http://files.vagrantup.com/precise64.box"
  config.vm.provision :shell, :inline => <<-EOS

aptitude update -y
aptitude install -y build-essential
wget http://code.call-cc.org/releases/4.8.0/chicken-4.8.0.4.tar.gz
tar xvf chicken-4.8.0.4.tar.gz
cd chicken-4.8.0.4
make PLATFORM=linux
make PLATFORM=linux install

  EOS
end

テンプレート:サンプル環境


Hello, world![編集]

vagrant@precise64:~$ cat > hello.scm
(display "Hello,world!")
(newline)
vagrant@precise64:~$ csi -b hello.scm 

CHICKEN
(c) 2008-2013, The Chicken Team
(c) 2000-2007, Felix L. Winkelmann
Version 4.8.0.4 (stability/4.8.0) (rev 578619b)
linux-unix-gnu-x86-64 [ 64bit manyargs dload ptables ]
compiled 2013-07-15 on aeryn.xorinia.dim (Darwin)

; loading hello.scm ...
Hello,world!
vagrant@precise64:~$ csc hello.scm 
vagrant@precise64:~$ ./hello 
Hello,world!
vagrant@precise64:~$

Binary size[編集]

vagrant@precise64:~$ csc hello.scm  -o hello.static -static
vagrant@precise64:~$ ls -alh hello hello.static 
-rwxrwxr-x 1 vagrant vagrant  14K Aug 25 08:57 hello
-rwxrwxr-x 1 vagrant vagrant 3.3M Aug 25 08:57 hello.static