
From esoteric@oiva.sange.fi Thu Jan 02 08:59:03 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18TzIz-000GRM-00; Thu, 02 Jan 2003 08:58:14 +0200
Received: with LISTAR (v0.129a; list chat); Thu, 02 Jan 2003 08:58:06 +0200 (EET)
Received: from h24-70-180-74.wp.shawcable.net ([24.70.180.74] helo=kallisti.mine.nu)
	by oiva.sange.fi with smtp (Exim 4.10)
	id 18TzIk-000GRA-00
	for chat@esoteric.sange.fi; Thu, 02 Jan 2003 08:57:58 +0200
Received: (qmail 50952 invoked by uid 1001); 2 Jan 2003 06:57:15 -0000
Date: Thu, 2 Jan 2003 00:57:14 -0600
From: Chris Pressey <cpressey@catseye.mb.ca>
To: chat@esoteric.sange.fi
Subject: [chat] Re: Esoteric-ish books
Message-Id: <20030102005714.0f2a4586.cpressey@catseye.mb.ca>
In-Reply-To: <20021231154125.A10575@esoteric>
References: <20021231013843.0cd1a46d.ee4299@ee.teiath.gr>
	<20021231154125.A10575@esoteric>
Organization: Cat's Eye Technologies, http://www.catseye.mb.ca/
X-Mailer: Sylpheed version 0.8.6 (GTK+ 1.2.10; i386-portbld-freebsd4.7)
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
X-Spam-Score: -2.3 (--)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18TzIk-000GRA-00*5Sy36vEeRao*
X-listar-version: Listar v0.129a
Sender: chat-bounce@esoteric.sange.fi
Errors-to: chat-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: chat@esoteric.sange.fi
X-list: chat
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18TzIz-000GRM-00*pA95Jc9F24I*

On Tue, 31 Dec 2002 15:41:25 +0100
markus.kliegl@t-online.de (Markus Kliegl) wrote:

> Other people on this list can probably add more.

I understand that the first edition of the "Dragon" book ("Compilers:
Principles, Techniques, and Tools" by Aho, Sethi, & Ullman) has some
pretty esoteric stuff in it.  I only have the 2nd edition, it's pretty
good too.

"Understanding Programming Languages" by Ben-Ari

"Patterns in Software" by Gabriel

Some on this list would probably recommend "Goedel, Escher, Bach: an
Eternal Golden Braid" by Hofstaedter but it was just too geeky/starry-eyed
for my taste.  I much preferred "Fear and Loathing in Las Vegas" by
Thompson.

Plus there was one library book whose title I can't remember, but I think
it had the word "Mind" in it, but I'm pretty sure the authors' names were
Levine & Levine.  Google revealed nothing concrete, but it was a good book
overall, covering some *very* early attempts at "programming language"
design, like the Principia Mathematica and even earlier stuff.

Happy 2OO3!
-Chris



From esoteric@oiva.sange.fi Sun Jan 19 22:24:09 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18aLwP-000Hxa-00; Sun, 19 Jan 2003 22:21:13 +0200
Received: with LISTAR (v0.129a; list lang); Sun, 19 Jan 2003 22:21:00 +0200 (EET)
Received: from asteroids.cybercomm.nl ([213.196.1.176])
	by oiva.sange.fi with smtp (Exim 4.10)
	id 18aLw5-000HxR-00
	for lang@esoteric.sange.fi; Sun, 19 Jan 2003 22:20:53 +0200
Received: (qmail-ldap/ctrl 29165 invoked from network); 19 Jan 2003 20:20:15 -0000
Received: from 242.15.dialup.cybercomm.nl (HELO dds.nl) ([213.196.15.242]) (envelope-sender <mwq@dds.nl>)
          by dds.nl (qmail-ldap-1.03) with SMTP
          for <lang@esoteric.sange.fi>; 19 Jan 2003 20:20:15 -0000
Message-ID: <3E2AFA83.8070001@dds.nl>
Date: Sun, 19 Jan 2003 20:20:35 +0100
From: Milo van Handel <mwq@dds.nl>
Organization: Milo-Soft
User-Agent: Mozilla/5.0 (X11; U; Linux i586; en-US; rv:0.9.8) Gecko/20020204
X-Accept-Language: en-us
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: communicative power (was: Re: Purpose of "+" in HQ9+ ?)
References: <3CAB52D6.67399DBE@dds.nl>	<Pine.GSO.3.96.1020403141353.4807B-100000@rama> <20021207144151.2ef5295a.cpressey@catseye.mb.ca>
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -3.1 (---)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18aLw5-000HxR-00*bSjFzBmKWrA*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: mwq@dds.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18aLwP-000Hxa-00*SwH/y2mTIiY*

A *very* late reply...  My internet seems to be working at normal speed right
now but I don't know how long that will last.

Chris Pressey wrote:

> A program (and/or all programs in some given language, which is what we're
> after here) may have zero, one, or many points of input, and may have
> zero, one, or many points of output.

Not quite right.  There's an important difference between a multi-batch program
which has one hundred input and output points throughout it, and an interactive
program which can have arbitrarily many I/O points dynamically decided during
execution.  The former is not very common, and is emulatable by sequencing
several ordinary batch programs, but must still be considered.



-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu Jan 23 00:35:15 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18bTPR-0008UF-00; Thu, 23 Jan 2003 00:31:49 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 23 Jan 2003 00:31:36 +0200 (EET)
Received: from anchor-post-35.mail.demon.net ([194.217.242.85])
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18bTP1-0008U6-00
	for lang@esoteric.sange.fi; Thu, 23 Jan 2003 00:31:23 +0200
Received: from eq1152.demon.co.uk ([158.152.22.92] helo=oemcomputer)
	by anchor-post-35.mail.demon.net with smtp (Exim 3.36 #2)
	id 18bTOv-0001zy-0Z
	for lang@esoteric.sange.fi; Wed, 22 Jan 2003 22:31:18 +0000
Message-ID: <001201c2c265$f7aeaae0$5c16989e@oemcomputer>
From: "Peter S Tillier" <petert@eq1152.demon.co.uk>
To: <lang@esoteric.sange.fi>
References: <3DFF32EE.92CFEBC7@club-internet.fr> <000701c2a9a2$fbd8ca00$a481ef9b@lennie> <3E05CB10.A5FB1F50@club-internet.fr>
Subject: [lang] Re: [Fromage] bf to fromage compiler
Date: Wed, 22 Jan 2003 22:31:10 -0000
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2800.1106
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
X-Spam-Score: 1.0 (+)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18bTP1-0008U6-00*R2fpZOOZQp6*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: petert@eq1152.demon.co.uk
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18bTPR-0008UF-00*0tkdkrXEbxs*

----- Original Message -----
From: "Laurent Vogel" <lvl@club-internet.fr>
To: <lang@esoteric.sange.fi>
Sent: Sunday, December 22, 2002 2:24 PM
Subject: [lang] Re: [Fromage] bf to fromage compiler


> D De Villiers wrote:
> > sed ? GNU sed ? I dont know anything about "sed" Where can I get it?
>
> well, sed is not an esoteric language as such, it is the good old
> Stream EDitor on Unix (sed descends from ed, the first unix editor,
> and can be seen as a predecessor of AWK and perl).
>
> For sed pointers, see for instance:
>   http://www.softpanorama.org/Tools/sed.shtml
>
> regards,
>
> Laurent

For more sed resouces try:

<url: http://sed.sourceforge.net/>


Peter S Tillier
Opinions expressed are my own and not necessarily
those of my employer.



-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu Jan 30 20:29:26 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18eJMS-000Afx-00; Thu, 30 Jan 2003 20:24:28 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 30 Jan 2003 20:24:15 +0200 (EET)
Received: from post.it.helsinki.fi ([128.214.205.24])
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18eJM2-000Afg-00
	for lang@esoteric.sange.fi; Thu, 30 Jan 2003 20:24:02 +0200
Received: from xandru.it.helsinki.fi (mail@xandru.it.helsinki.fi [128.214.38.174])
	by post.it.helsinki.fi (8.12.2/8.12.2-SPAMmers-sod-off) with ESMTP id h0UIO2fu008684
	for <lang@esoteric.sange.fi>; Thu, 30 Jan 2003 20:24:02 +0200 (EET)
Received: from pkalliok by xandru.it.helsinki.fi with local (Exim 3.35 #1 (Debian))
	id 18eJD1-000638-00
	for <lang@esoteric.sange.fi>; Thu, 30 Jan 2003 20:14:43 +0200
Date: Thu, 30 Jan 2003 20:14:43 +0200
From: Panu Kalliokoski <pkalliok@cs.helsinki.fi>
To: lang@esoteric.sange.fi
Subject: [lang] Re: sed (was: Re: [Fromage] bf to fromage compiler)
Message-ID: <20030130181441.GB23125@ling.helsinki.fi>
Mail-Followup-To: lang@esoteric.sange.fi
References: <3DFF32EE.92CFEBC7@club-internet.fr> <000701c2a9a2$fbd8ca00$a481ef9b@lennie> <3E05CB10.A5FB1F50@club-internet.fr> <001201c2c265$f7aeaae0$5c16989e@oemcomputer>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
In-Reply-To: <001201c2c265$f7aeaae0$5c16989e@oemcomputer>
User-Agent: Mutt/1.4i
Sender: Panu Kalliokoski <pkalliok@xandru.it.helsinki.fi>
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by post.it.helsinki.fi id h0UIO2fu008684
X-Spam-Score: -2.2 (--)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18eJM2-000Afg-00*i.EUPR3lRH6*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.helsinki.fi
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18eJMS-000Afx-00*w/wWWcPLoxw*

On Wed, Jan 22, 2003 at 10:31:10PM -0000, Peter S Tillier wrote:
> > For sed pointers, see for instance:
> >   http://www.softpanorama.org/Tools/sed.shtml
> <url: http://sed.sourceforge.net/>

This is probably not overly esoteric, but here is a text to html converte=
d
I wrote in sed.  I've been trying to avoid using GNU sed extensions.

#!/bin/sed -f
1{
 i\
<html>
 h
 s#^.*$#<title> & </title>#p
 s#.*##
 x
}

/./{
 s#=0D$##
 s#	#    #g
 s#&#\&amp;#g
 s#<#\&lt;#g
 s#>#\&gt;#g
 s#=E5#\&aring;#g
 s#=E4#\&auml;#g
 s#=F6#\&ouml;#g
 s#=C5#\&Aring;#g
 s#=C4#\&Auml;#g
 s#=D6#\&Ouml;#g
 H
 $b emit
 d
}

/./!{
 :emit
 x
 /^[ \n]*$/d
 /^\n *---* *$/c\
<hr>

 /^\n\([A-Za-np-z][^\n]*\)\n *[-*o.] .*/{
  h
  s##<p> \1 </p>#p
  s#.*##
  x
  s#^\n[A-Za-np-z][^\n]*##
 }

 /^\n[A-Za-np-z]/,/^\n *[-*o.] /{
  /^\n *[-*o.] /i\
   <ul>
 }
 /^\n *[-*o.] /,/^\n[A-Za-np-z]/{
  /^\n[A-Za-np-z]/{
   i\
   </ul>
   b eiul
  }
  $a\
   </ul>
  s#\n *[-*o.] \([^\n]*\(\n *[^ .*-][^\n]*\)*\)#<li> \1 </li>\
#g
 }
 : eiul
=20
 /^\n\([A-Za-z][^\n]*\)\n *[1-9][0-9]*[.):] .*/{
  h
  s##<p> \1 </p>#p
  s#.*##
  x
  s#^\n[A-Za-z][^\n]*##
 }

 /^\n[A-Za-z]/,/^\n *[1-9][0-9]*[.):] /{
  /^\n *[1-9][0-9]*[.):] /i\
   <ol>
 }
 /^\n *[1-9][0-9]*[.):] /,/^\n[A-Za-z]/{
  /^\n[A-Za-z]/{
   i\
   </ol>
   b eiol
  }
  $a\
   </ol>
  s#\n *[1-9][0-9]*[.):] \([^\n]*\(\n *[^ 0-9][^\n]*\)*\)#<li> \1 </li>\
#g
 }
 : eiol

 /^\n[A-Za-z][^\n]*\n[A-Za-z]/,/^\(\n[A-Za-z][^\n]*\)*\n  /{
  /^\(\n[A-Za-z][^\n]*\)*\n  /i\
   <dl>
 }
 /^\(\n[A-Za-z][^\n]*\)*\n  /,/^\n[A-Za-z][^\n]*\n[A-Za-z]/{
  /^\n[A-Za-z][^\n]*\n[A-Za-z]/{
   i\
   </dl>
   b eidl
  }
  $a\
   </dl>
  s#\n\([A-Za-z][^\n]*\(\n[A-Za-z][^\n]*\)*\)#<dt> \1 </dt>#g
  s#\n\(  [^\n<]*\(\n  [^\n<]*\)*\)#<dd> \1 </dd>#g
 }
 : eidl

 /^\n*\(\(\n&gt;[^\n]*\)*\)$/{
  s##<blockquote> \1 </blockquote>#
  s#\n&gt; *\n&gt;#</blockquote>\
<blockquote>#g
  s#\n&gt;#\
#g
 }

 s#^\n\([^\na-z]*\)\(\n[- =3D~"]*\)*$#<h1> \1 </h1>#
 s#^\n\([^\n]*\)\(\n[- =3D~"]*\)*$#<h3> \1 </h3>#
 s#^\n\(.*\)$#<p> \1 </p>#

 s#\([ \n-("']\)/\([^/]*\)/\([ \n,.;:-?!)"']\)#\1<em>\2</em>\3#g
 s#\([ \n-("']\)_\([^_]*\)_\([ \n,.;:-?!)"']\)#\1<em>\2</em>\3#g
 s#\([ \n-("']\)\*\([^*]*\)\*\([ \n,.;:-?!)"']\)#\1<strong>\2</strong>\3#=
g

 s#http://\([A-Za-z0-9][A-Za-z0-9]*[^ \n()A-Za-z0-9]~*\)*[A-Za-z0-9][A-Za=
-z0-9]*/*#<a href=3D"&">&</a>#g
}

$a\
</html>


--=20
personal contact: atehwa@iki.fi, +35841 5323835
work contact: pkalliok@ling.helsinki.fi, +35850 3678003
kotisivu (henkkoht):	http://www.iki.fi/atehwa/
homepage (technical):	http://sange.fi/~atehwa/

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Sat Feb 01 23:20:20 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18f4zL-000JOE-00; Sat, 01 Feb 2003 23:15:47 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 01 Feb 2003 23:15:34 +0200 (EET)
Received: from hki2-1-3-63.hoasnet.inet.fi
	([80.221.34.99] helo=gehennom.org ident=fizban)
	by oiva.sange.fi with smtp (Exim 4.10)
	id 18f4z1-000JO5-00
	for lang@esoteric.sange.fi; Sat, 01 Feb 2003 23:15:27 +0200
Received: (qmail 12494 invoked by uid 1000); 1 Feb 2003 21:15:27 -0000
Date: Sat, 1 Feb 2003 23:15:27 +0200
From: Heikki Kallasjoki <fizban@iki.fi>
To: lang@esoteric.sange.fi
Subject: [lang] Re: sed
Message-ID: <20030201211527.GA12339@iki.fi>
References: <3DFF32EE.92CFEBC7@club-internet.fr> <000701c2a9a2$fbd8ca00$a481ef9b@lennie> <3E05CB10.A5FB1F50@club-internet.fr> <001201c2c265$f7aeaae0$5c16989e@oemcomputer> <20030130181441.GB23125@ling.helsinki.fi>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20030130181441.GB23125@ling.helsinki.fi>
User-Agent: Mutt/1.4i
X-Operating-System: Linux colin 2.4.20
X-Spam-Score: -3.0 (---)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18f4z1-000JO5-00*blgOV09qLA.*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: fizban@iki.fi
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18f4zL-000JOE-00*K0OzKV6CLpc*

On Thu, Jan 30, 2003 at 08:14:43PM +0200, Panu Kalliokoski wrote:
> This is probably not overly esoteric, but here is a text to html converted
> I wrote in sed.  I've been trying to avoid using GNU sed extensions.

Well, if Panu posts only quasi-esoteric stuff, why shouldn't I too.

Inspired by the beautiful line-noise-like appearance of sed, I wrote a
recursive fibonacci number calculator as a sed script. Since it has some
200+ almost-identical lines in the addition part (thanks to sed not
having any support for numerical data or operations), I won't include it
in the post, but it's at http://befunge.org/~fizban/fib.sed

Input is the index of the fibonacci number wanted. Calculations use
fixed-width numbers, but you can specify the width on input. Just enter
'000015|', for example, to use 6-digit numbers. If you just enter '23',
it's converted to '00023|', so 5-digit numbers are the default.

It's very horribly slow (7.5 seconds for the 16th number here), but..
well, it could be slower. Before I divided the addition-substitutions
into groups of ten (just see the script), getting the 16th number used
to take 37.5 seconds.

If performance is really an issue (and you still for some reason insist
on using _sed_ for stuff like this), there's also a non-recursive
version at http://befunge.org/~fizban/fib2.sed .

That one takes the amount of requested numbers from the input, but not
as a number. Instead for each character on the input line, one number is
calculated. (Not really, for 'x' it gives '000003|000002|000001|000001')

To change the number width used, just change the '000001|000001|' part
to desired width.

Oh, and then there's http://befunge.org/~fizban/num.sed , which is
probably even less interesting, but that's what inspired me to start
writing fib.sed. An acquaintance in irc had written a number-pronouncer
in perl, so I had to do same in sed to demonstrate that perl is
overkill. It still has bugs (related to spurious spaces mostly) but,
well, it works well enough for the intended purpose. (Which is, to do
nothing.)


 - Heikki Kallasjoki
   fizban@iki.fi

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Sun Feb 09 12:53:07 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18hp0z-000HGj-00; Sun, 09 Feb 2003 12:48:49 +0200
Received: with LISTAR (v0.129a; list lang); Sun, 09 Feb 2003 12:48:35 +0200 (EET)
Received: from relay-4m.club-internet.fr ([194.158.104.43])
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18hp0V-000HGX-00
	for lang@esoteric.sange.fi; Sun, 09 Feb 2003 12:48:19 +0200
Received: from club-internet.fr (lcbv2-1-238.n.club-internet.fr [213.44.12.238])
	by relay-4m.club-internet.fr (Postfix) with ESMTP id 48235E300
	for <lang@esoteric.sange.fi>; Sun,  9 Feb 2003 11:48:16 +0100 (CET)
Message-ID: <3E463234.8202F9F5@club-internet.fr>
Date: Sun, 09 Feb 2003 11:49:24 +0100
From: Laurent Vogel <lvl@club-internet.fr>
X-Mailer: Mozilla 4.06 [fr] (Win95; I)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] [sed] Quizz
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Spam-Score: 1.0 (+)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18hp0V-000HGX-00*UxSX1ebf5OM*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: lvl@club-internet.fr
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18hp0z-000HGj-00*x12/TBy4i1o*

Can you find out what the following program does?

If you find, don't spoil the fun, just say you've found, so that
others can try. Or, mail your comments using [spoiler] quizz as
subject.

(hint) It should be possible to find out without looking at the code,
just by running it.

I'll post more hints every day.

Laurent

------

# quizz.sed - this program does something, but what?
# (don't worry, I'll post the commented version later on)
x
1s/^/0 /
s/ /v /
:a
/^v/{
s//1/
b b
}
s/v/v0123456789p /
s/\([^v]\)v[^ ]*\1\(.\)[^ ]* /\2/
/^[^ ]*p/{
s/p/v0/
b a
}
:b
x
:p
s/^[ 	]*//
s/^#.*//
/^\.[:@();|<>_]/{
s//&:n@o(p)q;r|s<t>u_v /
s/^.\(.\)[^ ]*\1\([^ ]\)[^ ]* /,\2/
:j
H
s/..//
x
s/^\([^ ]* .*\)\n\(..\).*/\1\2/
x
b p
}
s/^\.$/e/
/^\./b j
/^[^pqvxefi.`]/{
x
s/ .*/:/
s/^/Syntax error line  /
G
p
s/.*\n.*//
q
}
/./{
H
s/.//
x
s/^\([^ ]* .*\)\n\(.\).*/\1\2/
x
b p
}
$!d
x
s/[^ ]* //
s/$/|;/
s/^/_/
:d
s/_\([^`]\)/<\1/
s/_`q/<Q/
/</b h
s/_``/`:_`/
s/_`e/e:_/
s/_`\([.,]\)\(.\)/\2\1:_/
s/_`v/_/
s/_`i/i:_/
s/_`x/X_/
s/_`f/F_/
s/_`p/p:_/
s/_`\(%n*%\)/\1:_/
s/_`Q/`:r@>/
s/_`X/X@>/
s/_`F/Gr@>/
s/_`G/`:`s@>/
/_/b d
:e
s/\([^@]@@*>\)\([FQX]*[`G][FQX]*[a-z]\([FQX]*[`G][FQX]*[a-z]\)*\)/\2\1/
s/\([^@]\)\(@@*>\)\([FQX]*[`G]\)/\3\1@\2/
s/\([^@]\)@\(@*>\)\([FQX]*[.,].\)/\3\1\2/
s/\([^@]\)@\(@*>\)\([FQX]*%n*%\)/\3\1\2/
s/\([^@]\)@\(@*>\)\([FQX]*[a-z]\)/\3\1\2/
/@>./b e
/@>$/b i
s/X>/X:_/
s/r>/_/
s/t>/t:_/
/_/b d
/s>/{
s//s:t@>/
b e
}
/u>/{
s//<;/
b h
}
/m>/{
s//)</
b g
}
/p>/{
s/p>/;/
s/\([^;]*\);\([^;]*\);\([^|]*\)|\(n*\)/\1`:<\2%\4n%\3|\4n;;(\1;\3)|\4/
b f
}
/P>/{
s/P>/;/
s/\([^;]*\);\(n*;[^;]*\);\([^|]*\)/P:<\2(\1\3)/
b g
}
b i
:f
s/(\([^%)]*%\(n*\)%[^%)]*\)\(.*|\2;\)/\1(\3n/
s/(\([^%)]*\))/\1/
/(/!b h
:g
s/([^%)]*%\(n*\)%[^%)]*\(.*|\1;\)n/(\2/
s/([^%)]*%\(n*\)%[^%)]*\(.*\)|\1;;\([^|]*\)|/(\2(\3)|/
s/([^%)]*)//
/(/b g
:h
s/:\([^:]*\)</:<\1/
/:</!b i
s/p:</;p@>/
s/X:</(m@>/
s/i:</i(m@>/
s/t:</;u@>/
s/%\(n*\)%:</;\1;P@>/
/>/b e
s/f:</<`F/
s/`:</_`/
/\.:</{
H
s/.\.:</</
x
s/\n.*\(.\)\.:<.*/\1/
x
}
/e:</{
s//</
x
y/abcdefghijklmnopqrstuvwxyz/nopqrstuvwxyzabcdefghijklm/
y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/NOPQRSTUVWXYZABCDEFGHIJKLM/
p
s/.*//
x
}
/,:</{
H
s/.,:</</
x
s/\(\n\).*\(.\),:<.*/\1\2:n@o(p)q;r|s<t>u_v/
s/\n\(.\).*\(.\)\1.*/\2/
x
}
/P:</{
s/P:<//
s/\(n*;\)\([^|]*\)\(.*\)|\1n\(n*;\)\([^;]*;\)\([^|]*\)/\5\2\6\3|\1\4(\5\6)/
/(/{
s/;/</
b f
}
s/\(n*;\)\([^|]*\)\(.*\)|\1;\([^;]*\);\([^|]*\)/\4<\2\5\3/
}
/s:</{
s/s:<\([^;]*\);\([^;]*\);/<\2`\1(\2)/
b f
}
/_/b d
/</b h
:i
x
/./{
y/abcdefghijklmnopqrstuvwxyz/nopqrstuvwxyzabcdefghijklm/
y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/NOPQRSTUVWXYZABCDEFGHIJKLM/
p
}
d

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Mon Feb 10 22:31:09 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18iKWn-000PJN-00; Mon, 10 Feb 2003 22:27:45 +0200
Received: with LISTAR (v0.129a; list lang); Mon, 10 Feb 2003 22:27:32 +0200 (EET)
Received: from relay-1m.club-internet.fr ([194.158.104.40])
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18iKWT-000PJC-00
	for lang@esoteric.sange.fi; Mon, 10 Feb 2003 22:27:25 +0200
Received: from club-internet.fr (lcbv1-4-22.n.club-internet.fr [213.44.102.22])
	by relay-1m.club-internet.fr (Postfix) with ESMTP id E51E31824
	for <lang@esoteric.sange.fi>; Mon, 10 Feb 2003 21:27:41 +0100 (CET)
Message-ID: <3E480B6E.2CAE63B7@club-internet.fr>
Date: Mon, 10 Feb 2003 21:28:30 +0100
From: Laurent Vogel <lvl@club-internet.fr>
X-Mailer: Mozilla 4.06 [fr] (Win95; I)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: [sed] Quizz
References: <3E463234.8202F9F5@club-internet.fr>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.9 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18iKWT-000PJC-00*imB16uQ8N9c*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: lvl@club-internet.fr
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18iKWn-000PJN-00*jQS7VR/l8p2*

> If you find, don't spoil the fun, just say you've found, so that
> others can try. Or, mail your comments using [spoiler] quizz as
> subject.
> 
> (hint) It should be possible to find out without looking at the code,
> just by running it.

(hint) It would be topical on lang@esoteric.sange.fi even if sed 
itself weren't.

(Oh, and tell me if you think I'm wasting bandwidth or am annoying
for some reason...)

Laurent

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Mon Feb 10 22:53:45 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18iKuF-000PQi-00; Mon, 10 Feb 2003 22:52:00 +0200
Received: with LISTAR (v0.129a; list lang); Mon, 10 Feb 2003 22:51:46 +0200 (EET)
Received: from relay-5m.club-internet.fr ([194.158.104.44])
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18iKtu-000PQZ-00
	for lang@esoteric.sange.fi; Mon, 10 Feb 2003 22:51:38 +0200
Received: from club-internet.fr (lcbv1-4-22.n.club-internet.fr [213.44.102.22])
	by relay-5m.club-internet.fr (Postfix) with ESMTP id 6746FE0DA
	for <lang@esoteric.sange.fi>; Mon, 10 Feb 2003 21:51:45 +0100 (CET)
Message-ID: <3E481118.CA3AB471@club-internet.fr>
Date: Mon, 10 Feb 2003 21:52:40 +0100
From: Laurent Vogel <lvl@club-internet.fr>
X-Mailer: Mozilla 4.06 [fr] (Win95; I)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] [sed, thue] fibonacci
References: <3DFF32EE.92CFEBC7@club-internet.fr> <000701c2a9a2$fbd8ca00$a481ef9b@lennie> <3E05CB10.A5FB1F50@club-internet.fr> <001201c2c265$f7aeaae0$5c16989e@oemcomputer> <20030130181441.GB23125@ling.helsinki.fi> <20030201211527.GA12339@iki.fi>
Content-Type: multipart/mixed; boundary="------------6CD6CC85F511A27729BA35F4"
X-Spam-Score: -0.6 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18iKtu-000PQZ-00*YGCfNKPiQx6*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: lvl@club-internet.fr
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18iKuF-000PQi-00*U6kuqpv.AEo*

Il s'agit d'un message multivolet au format MIME.
--------------6CD6CC85F511A27729BA35F4
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Heikki Kallasjoki wrote:
> 
> Well, if Panu posts only quasi-esoteric stuff, why shouldn't I too.
> 
> Inspired by the beautiful line-noise-like appearance of sed, I wrote a
> recursive fibonacci number calculator as a sed script. Since it has some
> 200+ almost-identical lines in the addition part (thanks to sed not
> having any support for numerical data or operations), I won't include it
> in the post, but it's at http://befunge.org/~fizban/fib.sed

After looking in awe at your 200+ adder, I tried to make a more 
compact sed program for the same task, namely: 

  read one decimal integer n, and print in decimal the nth 
  fibonacci number

I join my version, which is surely not recursive, but it is a 
little smaller.

However readers of this mailing list will agree that using sed for 
such simple task is overkill. I also wrote a Thue program for the
same task, which I join.

But then, one could object that the Thue program cannot replace
the sed version if there are platforms where sed runs, and where
there is no thue interpreter. I considered this, and to placate any
such comments I also provide a thue-to-sed compiler, written in 
sed :-)

Unsurprisingly, the time for running the thue version, once compiled
with sed, is even slower than the sed version posted by Heikki...
This is the price to pay for true esotericness :-)

  $ time echo 16 | sed -f fib.sed
  00987|

  real    0m11.420s
  user    0m0.000s
  sys     0m0.000s
  $ sed -f thue2sed.sed fibnth.t > f
  $ time ( echo ; echo 16 ) | sed -f f
  987

  real    0m19.440s
  user    0m0.000s
  sys     0m0.000s

(the "echo ;" is due to a limitation of thue2sed.sed)

Laurent Vogel
--------------6CD6CC85F511A27729BA35F4
Content-Type: text/plain; charset=us-ascii; name="fibnth.sed"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="fibnth.sed"

# fibo.sed - input n and print the nth fibonacci number
# (C) 2003 Laurent Vogel 
# GPL version 2 or later (http://www.gnu.org/copyleft/gpl.html)

# remove leading zeros and abort if n is not an integer.
s/^0*//
/^[0-9][0-9]*$/!{
  s/.*/Bad input/
  q
}

# set the two numbers to 0 and 1 in unary-coded decimal
s/$/:0a<:0!/

:loop

# decrement n and branch to :end if zero
s/:/d:/
:dec
s/d/d9876543210d9_/
s/\(.\)d[^_]*\1\(d*.\)[^_]*_/\2/
/d/b dec
s/^0*//
/^:/b end
  
# add first number to second
:add
s/:\([!a]\)/:0\1/
s/0\(a*\)<\([^!]*\)!/<\10\2\1!/
s/0aaaaaaaaaa/a0/
s/0\(a*\)!/!\10/
/[a0]</b add

# swap numbers and reset the adding cursors
s/<\([^:]*\)0:\([^!]*\)!\(.*\)0$/\20\3<:0\1!/

# loop for n
b loop

:end

# select one of the numbers and remove leading zero
s/:0*\([^<]*\).*/\10/

# convert it in decimal
s/aa*0/&aaaaaaaaa9aaaaaaaa8aaaaaaa7aaaaaa6aaaaa5aaaa4aaa3aa2a1_/g
s/\(aa*\)0[^_]*\1\([0-9]\)[^_]*_/\2/g


--------------6CD6CC85F511A27729BA35F4
Content-Type: text/plain; charset=us-ascii; name="fibnth.t"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="fibnth.t"

#::= fibnth.t - Print the nth fibonacci number, n input in decimal
#::= (C) 2003 Laurent Vogel
#::= GPL version 2 or later (http://www.gnu.org/copyleft/gpl.html)

#::= Thue info at: http://www.catseye.mb.ca/esoteric/thue/
#::= This is modified thue where only foo::=~ outputs a newline.

#::= 'n' converts from decimal to unary-coded decimal (UCD).
n9::=*********,n
n8::=********,n
n7::=*******,n
n6::=******,n
n5::=*****,n
n4::=****,n
n3::=***,n
n2::=**,n
n1::=*,n
n0::=,n
n-::=-

#::= '.' prints an UCD number and eats it.
.*********,::=.~9
.********,::=.~8
.*******,::=.~7
.******,::=.~6
.*****,::=.~5
.****,::=.~4
.***,::=.~3
.**,::=.~2
.*,::=.~1
.,::=.~0

~9::=~9
~8::=~8
~7::=~7
~6::=~6
~5::=~5
~4::=~4
~3::=~3
~2::=~2
~1::=~1
~0::=~0

#::= messages moving over ',', '*', '|'
*<::=<*
,<::=<,
|<::=<|

0>*::=*0>
0>,::=,0>
0>|::=|0>
1>*::=*1>
1>,::=,1>
1>|::=|1>
2>*::=*2>
2>,::=,2>
2>|::=|2>

#::= Decrement n. if n is >= 0, send message '2>';
#::= when n becomes negative, we delete the garbage using 'z' and
#::= print the left number using '.'.
*,-::=,2>
,,-::=,-*********,
|,-::=z
z*::=z
z,::=z
z|::=.

#::= move the left number to the right, reversing it (0 becomes 9, ...)
#::= reversal is performed to help detect the need for carry. As the 
#::= order of rule triggering is undetermined in Thue, a rule matching 
#::= nine consecutive * would not work.
*c<::=c<0>
,c<::=c<1>
|c<::=2>
0>d*::=d
1>d::=d*********,

#::= when the copy is done, 'd' is at the right place to begin the sum.
2>d::=f<|

#::= add left to right. 'f' moves left char by char when prompted by a '<'.
#::= it tells 'g' to its right what the next char is.
*f<::=f*0>
,f<::=f,1>

#::= when done for this sum, decrement nth.
|f<::=-|

#::= upon receiving '0>' 'g' drops an 'i' that increments the current digit.
0>g::=ig
*i::=<
,i::=i,*********
|i::=<|********,*********

#::= '1>' tells 'g' to move left to the next decimal position, 
#::= adding digit 0 if needed (i.e. nine '*' in reversed UCD)
*1>g::=1>g*
,1>g::=<g,
|1>g::=|<*********g,

#::= '2>' tells 'g' that the sum is done. We then prepare for copy (moving 
#::= a copy cursor 'c' to the correct place at the beginning of the left 
#::= number) and reverse (using 'j') the right number back.
*2>g::=2>g*
,2>g::=2>g,
|2>g::=c|*********j

#::= 'j' reverses the right number back, then leaves a copy receiver 'd'
#::= and behind it a sum receiver 'g'.
*j*::=j
j,*::=,********j
j,,::=,*********j,
j,|::=<,dg|

#::= '?' used to input n
?::=:::

#::= the initial data is set up, so that after reading n ('?'), converting 
#::= it to UCD ('n') and decrementing it (-), message '2>' sent by '-' 
#::= will start when hitting 'g' the first swap + sum cycle
#::= for numbers 0 (left) and 1 (reversed, right).
::=

|n?-|,|********g,|


--------------6CD6CC85F511A27729BA35F4
Content-Type: text/plain; charset=us-ascii; name="thue2sed.sed"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="thue2sed.sed"

# thue2sed - converts a Thue program to sed
# (C) 2003 Laurent Vogel 
# GPL version 2 or later (http://www.gnu.org/copyleft/gpl.html)
#
# Thue info at: http://www.catseye.mb.ca/esoteric/thue/

# notes
# - Due to the way sed handles input, the resulting program will skip
#   the first input line: when running the resulting program, one must 
#   supply this first input line, which will always be ignored.
# - the rules are triggered in deterministic order: they are tried one 
#   after the other in a big loop.
# - implements modified Thue where foo::=~bar does only output a newline
#   when bar is empty.
# - This should be absolutely portable sed. Please tell me if it is not.
#
# options
# - debug output - print the pattern space after each change
# - verbatim comments - lines starting with # passed verbatim
# - original output - newline printed at each output rule
# (These options can be activated by commenting/uncommenting
# unique lines. Each such lines has the comment OPTION above it)

# Consider line number in hold buffer
x

# OPTION
# To activate debug output, uncomment this line: 
# the Thue pattern space will be printed after each replacement.
# 1s/^/D/

# Initialize the line number
1s/$/0/

# Increment line number
s/$/i/
:inc
s/i/i0123456789i0_/
s/\([0-9]\)i[^_]*\1\(i*.\)[^_]*_/\2/
s/^\(D*\)i/\11/
/i/b inc

# Emit the prologue. The data space will be set up by :init at the end.
1i\
# generated from thue by thue2sed\
b init\
:loop

# debug? 
/^D1$/i\
t out\
:out\
p

# Back to thue source code
x

# OPTION
# To pass lines starting with # as sed comments, uncomment next line
/^#/b verbatim

# Pass empty lines untouched
/^$/{
  :verbatim
  s/^#::=/#/
  p
  d
}

# If there is no `::=', it is an error. Report it by creating a sed
# program that quits immediately after printing the error message.
/::=/!{
  :error
  # quote sed metacharacters
  s/\([\\\/]\)/\\\1/g
  # get the line number and a newline from the hold buffer
  G
  s/\(.*\)\(\n\)D*\(.*\)/:init\2i\\\2Syntax error line \3:\2s\/.*\/\1\/\2q/
  q
}

# Handle the two cases where ::= is at the beginning of the line.
# Any other cases are valid rules, handled below.
/^::=./b error
/^::=$/b init

# We now proceed to quote the sed metacharacters differently in the
# left and right part of the rule. First, replace the first ::= by \n
G
s/::=\(.*\)\(\n\).*/\2\1/
# Quote sed meta characters for the left part of rules
H
s/\n.*//
s/\([].*$^\/\\[]\)/\\\1/g
# Quote sed meta-characters for the right part of rules
x
s/\(\n\).*\n/\1/
s/\(\/\\]\)/\\\1/g
# Assemble back the line number, left and right parts:
# the hold buffer should contain only the line number; 
# the pattern space will contain <left>\n:<right>
H
s/\n.*//
x
s/\(\n\).*\n/\1:/

# Common code for output patterns:
s/\(..*\)\(\n\):~/\/\1\/{\2  s\/\/\/\2~/

# OPTION
# To implement the original Thue output behaviour (one newline after
# each output rule), uncomment the next line.
# [Sed note] I do not use the i\ sed command in case there is a backslash
# at the end of the line to be printed.
# s/\(\n\)~\(.*\)/\1  x\1  s\/.*\/\2\/\1  p\1  s\/.*\/\/\1  x\1}/

# Newline output pattern
s/\(\n\)~$/\1  x\1  p\1  s\/.*\/\/\1  x\1}/

# Other output pattern
s/\(\n\)~\(.*\)/\1  x\1  s\/$\/\2\/\1  x\1}/

# Input pattern
s/\(..*\)\(\n\)::::$/\/\1\/{\2  N\2  s\/\1\\(.*\\)\\n\\(.*\\)\/\\2\\1\/\2}/

# Replacement pattern
s/\(..*\)\n:\(.*\)/s\/\1\/\2\/g/

# Print the code handling this pattern 
p
  
# Debug?
x
/^D/i\
t out
x

# Done for this line
d 

:init
s/.*\n.*//

# We now write the code initialising the pattern space
# code inserted: 
# - at the end of loop: loop if a rule matched; print leftover output; quit
# - at init: delete first input line.
i\
t loop\
x\
q\
:init\
g

# Loop for all remaining lines
:loop
$b end
n

# Quote sed meta characters for the right part
s/\([\/\\]\)/\\\1/g

# Insert code to append to pattern space
s/\(..*\)/s\/$\/\1\//
/./p
s/.*//
b loop

# Finally, insert code to start looping
:end
i\
b loop
d


--------------6CD6CC85F511A27729BA35F4--


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Mon Feb 10 23:15:02 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18iLEw-000PV4-00; Mon, 10 Feb 2003 23:13:22 +0200
Received: with LISTAR (v0.129a; list lang); Mon, 10 Feb 2003 23:13:09 +0200 (EET)
Received: from relay-5m.club-internet.fr ([194.158.104.44])
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18iLEb-000PUv-00
	for lang@esoteric.sange.fi; Mon, 10 Feb 2003 23:13:01 +0200
Received: from club-internet.fr (lcbv1-4-22.n.club-internet.fr [213.44.102.22])
	by relay-5m.club-internet.fr (Postfix) with ESMTP id 2488CE347
	for <lang@esoteric.sange.fi>; Mon, 10 Feb 2003 22:13:10 +0100 (CET)
Message-ID: <3E48161D.B80C8787@club-internet.fr>
Date: Mon, 10 Feb 2003 22:14:05 +0100
From: Laurent Vogel <lvl@club-internet.fr>
X-Mailer: Mozilla 4.06 [fr] (Win95; I)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: [sed] Quiz
References: <3E463234.8202F9F5@club-internet.fr> <3E480B6E.2CAE63B7@club-internet.fr>
Content-Type: multipart/mixed; boundary="------------BE7B9E6C81820DA9DD3EFE43"
X-Spam-Score: 0.2 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18iLEb-000PUv-00*PqeJKk.f3Fc*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: lvl@club-internet.fr
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18iLEw-000PV4-00*zxLOZ8qI/Hc*

Il s'agit d'un message multivolet au format MIME.
--------------BE7B9E6C81820DA9DD3EFE43
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

(script reposted upon request)

If you find, don't spoil the fun, just say you've found, so that
others can try. Or, mail your comments using [spoiler] quizz as
subject.

(hint) It should be possible to find out without looking at the code,
just by running it. 

(hint) It would be topical on lang@esoteric.sange.fi even if sed
itself weren't.

Laurent
--------------BE7B9E6C81820DA9DD3EFE43
Content-Type: text/plain; charset=us-ascii; name="quizz.sed"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="quizz.sed"

# quizz.sed - this program does something, but what?
# (don't worry, I'll post the commented version later on)
x
1s/^/0 /
s/ /v /
:a
/^v/{
s//1/
b b
}
s/v/v0123456789p /
s/\([^v]\)v[^ ]*\1\(.\)[^ ]* /\2/
/^[^ ]*p/{
s/p/v0/
b a
}
:b
x
:p
s/^[ 	]*//
s/^#.*//
/^\.[:@();|<>_]/{
s//&:n@o(p)q;r|s<t>u_v /
s/^.\(.\)[^ ]*\1\([^ ]\)[^ ]* /,\2/
:j
H
s/..//
x
s/^\([^ ]* .*\)\n\(..\).*/\1\2/
x
b p
}
s/^\.$/e/
/^\./b j
/^[^pqvxefi.`]/{
x
s/ .*/:/
s/^/Syntax error line  /
G
p
s/.*\n.*//
q
}
/./{
H
s/.//
x
s/^\([^ ]* .*\)\n\(.\).*/\1\2/
x
b p
}
$!d
x
s/[^ ]* //
s/$/|;/
s/^/_/
:d
s/_\([^`]\)/<\1/
s/_`q/<Q/
/</b h
s/_``/`:_`/
s/_`e/e:_/
s/_`\([.,]\)\(.\)/\2\1:_/
s/_`v/_/
s/_`i/i:_/
s/_`x/X_/
s/_`f/F_/
s/_`p/p:_/
s/_`\(%n*%\)/\1:_/
s/_`Q/`:r@>/
s/_`X/X@>/
s/_`F/Gr@>/
s/_`G/`:`s@>/
/_/b d
:e
s/\([^@]@@*>\)\([FQX]*[`G][FQX]*[a-z]\([FQX]*[`G][FQX]*[a-z]\)*\)/\2\1/
s/\([^@]\)\(@@*>\)\([FQX]*[`G]\)/\3\1@\2/
s/\([^@]\)@\(@*>\)\([FQX]*[.,].\)/\3\1\2/
s/\([^@]\)@\(@*>\)\([FQX]*%n*%\)/\3\1\2/
s/\([^@]\)@\(@*>\)\([FQX]*[a-z]\)/\3\1\2/
/@>./b e
/@>$/b i
s/X>/X:_/
s/r>/_/
s/t>/t:_/
/_/b d
/s>/{
s//s:t@>/
b e
}
/u>/{
s//<;/
b h
}
/m>/{
s//)</
b g
}
/p>/{
s/p>/;/
s/\([^;]*\);\([^;]*\);\([^|]*\)|\(n*\)/\1`:<\2%\4n%\3|\4n;;(\1;\3)|\4/
b f
}
/P>/{
s/P>/;/
s/\([^;]*\);\(n*;[^;]*\);\([^|]*\)/P:<\2(\1\3)/
b g
}
b i
:f
s/(\([^%)]*%\(n*\)%[^%)]*\)\(.*|\2;\)/\1(\3n/
s/(\([^%)]*\))/\1/
/(/!b h
:g
s/([^%)]*%\(n*\)%[^%)]*\(.*|\1;\)n/(\2/
s/([^%)]*%\(n*\)%[^%)]*\(.*\)|\1;;\([^|]*\)|/(\2(\3)|/
s/([^%)]*)//
/(/b g
:h
s/:\([^:]*\)</:<\1/
/:</!b i
s/p:</;p@>/
s/X:</(m@>/
s/i:</i(m@>/
s/t:</;u@>/
s/%\(n*\)%:</;\1;P@>/
/>/b e
s/f:</<`F/
s/`:</_`/
/\.:</{
H
s/.\.:</</
x
s/\n.*\(.\)\.:<.*/\1/
x
}
/e:</{
s//</
x
y/abcdefghijklmnopqrstuvwxyz/nopqrstuvwxyzabcdefghijklm/
y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/NOPQRSTUVWXYZABCDEFGHIJKLM/
p
s/.*//
x
}
/,:</{
H
s/.,:</</
x
s/\(\n\).*\(.\),:<.*/\1\2:n@o(p)q;r|s<t>u_v/
s/\n\(.\).*\(.\)\1.*/\2/
x
}
/P:</{
s/P:<//
s/\(n*;\)\([^|]*\)\(.*\)|\1n\(n*;\)\([^;]*;\)\([^|]*\)/\5\2\6\3|\1\4(\5\6)/
/(/{
s/;/</
b f
}
s/\(n*;\)\([^|]*\)\(.*\)|\1;\([^;]*\);\([^|]*\)/\4<\2\5\3/
}
/s:</{
s/s:<\([^;]*\);\([^;]*\);/<\2`\1(\2)/
b f
}
/_/b d
/</b h
:i
x
/./{
y/abcdefghijklmnopqrstuvwxyz/nopqrstuvwxyzabcdefghijklm/
y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/NOPQRSTUVWXYZABCDEFGHIJKLM/
p
}
d

--------------BE7B9E6C81820DA9DD3EFE43--


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Mon Feb 10 23:40:54 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18iLcV-000PbM-00; Mon, 10 Feb 2003 23:37:43 +0200
Received: with LISTAR (v0.129a; list lang); Mon, 10 Feb 2003 23:37:30 +0200 (EET)
Received: from relay-2m.club-internet.fr ([194.158.104.41])
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18iLc8-000PbD-00
	for lang@esoteric.sange.fi; Mon, 10 Feb 2003 23:37:20 +0200
Received: from club-internet.fr (lcbv1-4-22.n.club-internet.fr [213.44.102.22])
	by relay-2m.club-internet.fr (Postfix) with ESMTP id 2EC9B17AA
	for <lang@esoteric.sange.fi>; Mon, 10 Feb 2003 22:37:14 +0100 (CET)
Message-ID: <3E481BD0.81B1C9B2@club-internet.fr>
Date: Mon, 10 Feb 2003 22:38:24 +0100
From: Laurent Vogel <lvl@club-internet.fr>
X-Mailer: Mozilla 4.06 [fr] (Win95; I)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] thue-to-sed compiler
References: <3DFF32EE.92CFEBC7@club-internet.fr> <000701c2a9a2$fbd8ca00$a481ef9b@lennie> <3E05CB10.A5FB1F50@club-internet.fr> <001201c2c265$f7aeaae0$5c16989e@oemcomputer> <20030130181441.GB23125@ling.helsinki.fi> <20030201211527.GA12339@iki.fi> <3E481118.CA3AB471@club-internet.fr>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.2 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18iLc8-000PbD-00*Ijh0d0buX06*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: lvl@club-internet.fr
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18iLcV-000PbM-00*0VeqMnXKAHs*

I wrote:
> I also provide a thue-to-sed compiler, written in sed :-)

Actually the said thue-to-sed compiled has a small bug, seen when
trying the brainf* interpreter in thue by Frederic van der Plancke
found at
  http://fvdp.homestead.com/files/eso_index.html

to fix the bug, in line 98, replace 
  s/\(\/\\]\)/\\\1/g
by
  s/\([\/\\]\)/\\\1/g

Sorry for this. I'll made the corrected script available on the web
some time in the future anyway, after more debugging.

Laurent

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue Feb 11 01:21:36 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18iNBp-000PpT-00; Tue, 11 Feb 2003 01:18:17 +0200
Received: with LISTAR (v0.129a; list lang); Tue, 11 Feb 2003 01:18:04 +0200 (EET)
Received: from hki2-1-3-63.hoasnet.inet.fi
	([80.221.34.99] helo=gehennom.org ident=fizban)
	by oiva.sange.fi with smtp (Exim 4.10)
	id 18iNBU-000PpK-00
	for lang@esoteric.sange.fi; Tue, 11 Feb 2003 01:17:56 +0200
Received: (qmail 20951 invoked by uid 1000); 10 Feb 2003 23:17:06 -0000
Date: Tue, 11 Feb 2003 01:17:06 +0200
From: Heikki Kallasjoki <fizban@iki.fi>
To: lang@esoteric.sange.fi
Subject: [lang] Re: [sed, thue] fibonacci
Message-ID: <20030210231706.GA20821@iki.fi>
References: <3DFF32EE.92CFEBC7@club-internet.fr> <000701c2a9a2$fbd8ca00$a481ef9b@lennie> <3E05CB10.A5FB1F50@club-internet.fr> <001201c2c265$f7aeaae0$5c16989e@oemcomputer> <20030130181441.GB23125@ling.helsinki.fi> <20030201211527.GA12339@iki.fi> <3E481118.CA3AB471@club-internet.fr>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <3E481118.CA3AB471@club-internet.fr>
User-Agent: Mutt/1.4i
X-Operating-System: Linux colin 2.4.20
X-Spam-Score: -2.6 (--)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18iNBU-000PpK-00*0BuoJlfWGA2*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: fizban@iki.fi
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18iNBp-000PpT-00*TQ/kAqaDPAk*

On Mon, Feb 10, 2003 at 09:52:40PM +0100, Laurent Vogel wrote:
> After looking in awe at your 200+ adder, I tried to make a more 
> compact sed program for the same task, namely:

Heh, well. The addition was quite senseless indeed. The 'fiv.sed' on the
same address (gehennom.org/~fizban/fiv.sed) uses the primitive 3->'xxx'
number notation, mainly because it makes addition so incredibly simple.

Oh, and after some experimentation I realized that sed regexps are so
powerful (mainly: can use backrefs in the match part too - for some
reason I just automatically assumed it wasn't so) that I can write
subtraction ('s/\(x*\)|\1//' to convert 'xx|xxxxx|' -> 'xxx|') and
stuff like /2 ('s/\(x*\)\1|/\1|/') awfully easily.

Since sed seems to be such a popular topic, I attached this perf2.sed I
just wrote, just to illustrate how surprisingly simple it is to write
"real" programs in sed. The program calculates as many perfect numbers
as the input string has letters (uh, try not to use 'x' or '|' as the
letters. '.' works just fine.)

The four first numbers are calculated in almost no time at all:
[1:08:19] fizban@colin ~> echo '....' > tmp.tmp ; time sed -f prog/sed/perf2.sed tmp.tmp
perfect number [2^(k-1)(2^k-1)]|k|
6|xx|
perfect number [2^(k-1)(2^k-1)]|k|
28|xxx|
perfect number [2^(k-1)(2^k-1)]|k|
496|xxxxx|
perfect number [2^(k-1)(2^k-1)]|k|
8128|xxxxxxx|
0.770u 0.000s 0:00.76 101.3% 0+0k(0k,^:0k) 0+0io 0+0sock 105pf+0w 0sig 0cs
The fifth one (2^12(2^13-1) = 33550336) will take significantly longer,
and would create a string with length over 33550336, which might make
the regexp matching significantly slower. (The file 'tmp.tmp' is used
because tcsh has problems with 'time' and pipes.)

(Oh, and it won't find any odd perfect numbers, should you encounter
some during the course of the program. This could be considered a bug.
If this is a problem, use http://gehennom.org/~fizban/perf.sed - but
that program is significantly slower. So slow, in fact, that I never got
the fourth number out of it. It must be truly esoteric since it's so
slow :p )

> I join my version, which is surely not recursive, but it is a 
> little smaller.

I like it, especially the from- and back-to-decimal conversion parts.

> However readers of this mailing list will agree that using sed for 
> such simple task is overkill. I also wrote a Thue program for the
> same task, which I join.
> 
> But then, one could object that the Thue program cannot replace
> the sed version if there are platforms where sed runs, and where
> there is no thue interpreter. I considered this, and to placate any
> such comments I also provide a thue-to-sed compiler, written in 
> sed :-)

I'd be more qualified to comment if I knew anything about Thue - must
look at the language. From the surface, it looks impressive.


 - Heikki Kallasjoki
   fizban@iki.fi

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue Feb 11 01:29:30 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18iNJq-000Pqv-00; Tue, 11 Feb 2003 01:26:34 +0200
Received: with LISTAR (v0.129a; list lang); Tue, 11 Feb 2003 01:26:20 +0200 (EET)
Received: from hki2-1-3-63.hoasnet.inet.fi
	([80.221.34.99] helo=gehennom.org ident=fizban)
	by oiva.sange.fi with smtp (Exim 4.10)
	id 18iNJW-000Pqj-00
	for lang@esoteric.sange.fi; Tue, 11 Feb 2003 01:26:14 +0200
Received: (qmail 20997 invoked by uid 1000); 10 Feb 2003 23:25:24 -0000
Date: Tue, 11 Feb 2003 01:25:24 +0200
From: Heikki Kallasjoki <fizban@iki.fi>
To: lang@esoteric.sange.fi
Subject: [lang] Re: [sed, thue] fibonacci
Message-ID: <20030210232524.GA20982@iki.fi>
References: <3DFF32EE.92CFEBC7@club-internet.fr> <000701c2a9a2$fbd8ca00$a481ef9b@lennie> <3E05CB10.A5FB1F50@club-internet.fr> <001201c2c265$f7aeaae0$5c16989e@oemcomputer> <20030130181441.GB23125@ling.helsinki.fi> <20030201211527.GA12339@iki.fi> <3E481118.CA3AB471@club-internet.fr> <20030210231706.GA20821@iki.fi>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="u3/rZRmxL6MmkK24"
Content-Disposition: inline
In-Reply-To: <20030210231706.GA20821@iki.fi>
User-Agent: Mutt/1.4i
X-Operating-System: Linux colin 2.4.20
X-Spam-Score: -2.6 (--)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18iNJW-000Pqj-00*Ux9d0DIjjaA*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: fizban@iki.fi
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18iNJq-000Pqv-00*c54dc4PuFV6*


--u3/rZRmxL6MmkK24
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Tue, Feb 11, 2003 at 01:17:06AM +0200, Heikki Kallasjoki wrote:
> Since sed seems to be such a popular topic, I attached this perf2.sed I

Or rather: thought I'd attach it, but then forgot when actually sending
the message. Will try this again.

 - Heikki Kallasjoki
   fizban@iki.fi

--u3/rZRmxL6MmkK24
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="perf2.sed"

# perf2.sed -- find perfect numbers
# (C) 2003  Heikki Kallasjoki <fizban@iki.fi>
# GPL'd, see file COPYING

s/^.//
x
# initialize data: 'k=2|'
s/.*/xx|/
: neext
# calculate 2^k-1 (data: 'k|')
s/^x\(x*\)/\1|&/
s/^/xx|/
: pow2
s/^x*/&&/
s/^\(x*|\)x\(x*|\)/\1\2/
/^x*|x/ b pow2
s/^\(x*|\)|/\1/
# (data: '2^k|k|')
s/^x\(x*\)/\1|&/
# test if 2^k-1 prime (data: '2^k-1|2^k|k|')
# can't be even, no need to check if %2==0
# special check: 3 is a prime
s/^/xxx|/
/^xxx|xxx|/ b ispri
: nextfac
# (data: 'f=3|2^k-1|2^k|k|')
# mangle stack
s/^x*|x*|/&&/
# (data: 'f|2^k-1|f|2^k-1|2^k|k|')
t pridec
: pridec
s/^\(xx*\)|\1/\1|/
t pridec
/^x*||/ b nopri
# factor didn't match, check next
s/^x*|x*|//
s/^/xx/
# (data: 'f+=2|2^k-1|2^k|k|')
/^\(x*\)|\1\1/ b nextfac
: ispri
# was prime (data: 'f|2^k-1|2^k|k|')
s/^x*|//
# calculate 2^(k-1) == 2^k/2 (data: '2^k-1|2^k|k|')
s/^\(x*|\)\(x*\)\2|/\1\2|/
# multiply (data: '2^k-1|2^(k-1)|k|')
s/^/|/
t mul
: mul
s/^\(x*|\)x\(x*|\)\(x*\)|/\3\1\2\3|/
t mul
# (data: '2^(k-1)(2^k-1)||2^(k-1)|k|')
s/^\(x*|\)|x*|/\1/
b numconv
: numconv_ret
i\
perfect number [2^(k-1)(2^k-1)]|k|
p
# then test if we need to go further
x
/^./{
	s/^.//
	x
	s/^[0-9]*|/x/
	b neext
}
d
: nopri
# factor match, not a prime (data: 'f|2^k-1|f|2^k-1|2^k|k|')
s/x*|x*|x*|x*|x*|//
# increase k, test next number (data: 'k|')
s/^/x/
b neext
: numconv
# convert a number to decimal
H
s/^\(x*\)|.*/\1/
s/^/=/
: nloop
s/x\{10\}/y/g
s/^\([0-9]*=y*\)$/0\1/
s/^\([0-9]*=y*\)x\{1\}$/1\1/
s/^\([0-9]*=y*\)x\{2\}$/2\1/
s/^\([0-9]*=y*\)x\{3\}$/3\1/
s/^\([0-9]*=y*\)x\{4\}$/4\1/
s/^\([0-9]*=y*\)x\{5\}$/5\1/
s/^\([0-9]*=y*\)x\{6\}$/6\1/
s/^\([0-9]*=y*\)x\{7\}$/7\1/
s/^\([0-9]*=y*\)x\{8\}$/8\1/
s/^\([0-9]*=y*\)x\{9\}$/9\1/
/=y/ {
	y/y/x/
	b nloop
}
s/=$//
# number converted
G
s/\n//g
s/^\([0-9]*\)[^x]*x*/\1/
# clean hold
x
s/\n//g
s/x*|//g
x
b numconv_ret

--u3/rZRmxL6MmkK24--

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue Feb 11 23:48:54 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18iiEF-0005Ql-00; Tue, 11 Feb 2003 23:46:11 +0200
Received: with LISTAR (v0.129a; list lang); Tue, 11 Feb 2003 23:45:58 +0200 (EET)
Received: from relay-4m.club-internet.fr ([194.158.104.43])
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18iiDu-0005QX-00
	for lang@esoteric.sange.fi; Tue, 11 Feb 2003 23:45:50 +0200
Received: from club-internet.fr (lcbv4-3-22.n.club-internet.fr [213.44.106.22])
	by relay-4m.club-internet.fr (Postfix) with ESMTP id CD138E14F
	for <lang@esoteric.sange.fi>; Tue, 11 Feb 2003 22:45:45 +0100 (CET)
Message-ID: <3E496F52.FF780EC7@club-internet.fr>
Date: Tue, 11 Feb 2003 22:46:58 +0100
From: Laurent Vogel <lvl@club-internet.fr>
X-Mailer: Mozilla 4.06 [fr] (Win95; I)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: [sed] Quiz
References: <3E463234.8202F9F5@club-internet.fr> <3E480B6E.2CAE63B7@club-internet.fr> <3E48161D.B80C8787@club-internet.fr>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.3 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18iiDu-0005QX-00*a.KUfwFvnMs*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: lvl@club-internet.fr
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18iiEF-0005Ql-00*NZ6K6.qjSnM*

> If you find, don't spoil the fun, just say you've found, so that
> others can try. Or, mail your comments using [spoiler] quizz as
> subject.
> 
> (hint) It should be possible to find out without looking at the code,
> just by running it.
> 
> (hint) It would be topical on lang@esoteric.sange.fi even if sed
> itself weren't.

Apparently either you're all completely bored, or it was so obvious 
that you have all found out long ago. Nevertheless, here is another 
hint.

(hint) It is the interpreter of a known esoteric language in disguise.

Laurent
 
> -----------------------------------------------------------------
> # quizz.sed - this program does something, but what?
> # (don't worry, I'll post the commented version later on)
> x
> 1s/^/0 /
> s/ /v /
> :a
> /^v/{
> s//1/
> b b
> }
> s/v/v0123456789p /
> s/\([^v]\)v[^ ]*\1\(.\)[^ ]* /\2/
> /^[^ ]*p/{
> s/p/v0/
> b a
> }
> :b
> x
> :p
> s/^[    ]*//
> s/^#.*//
> /^\.[:@();|<>_]/{
> s//&:n@o(p)q;r|s<t>u_v /
> s/^.\(.\)[^ ]*\1\([^ ]\)[^ ]* /,\2/
> :j
> H
> s/..//
> x
> s/^\([^ ]* .*\)\n\(..\).*/\1\2/
> x
> b p
> }
> s/^\.$/e/
> /^\./b j
> /^[^pqvxefi.`]/{
> x
> s/ .*/:/
> s/^/Syntax error line  /
> G
> p
> s/.*\n.*//
> q
> }
> /./{
> H
> s/.//
> x
> s/^\([^ ]* .*\)\n\(.\).*/\1\2/
> x
> b p
> }
> $!d
> x
> s/[^ ]* //
> s/$/|;/
> s/^/_/
> :d
> s/_\([^`]\)/<\1/
> s/_`q/<Q/
> /</b h
> s/_``/`:_`/
> s/_`e/e:_/
> s/_`\([.,]\)\(.\)/\2\1:_/
> s/_`v/_/
> s/_`i/i:_/
> s/_`x/X_/
> s/_`f/F_/
> s/_`p/p:_/
> s/_`\(%n*%\)/\1:_/
> s/_`Q/`:r@>/
> s/_`X/X@>/
> s/_`F/Gr@>/
> s/_`G/`:`s@>/
> /_/b d
> :e
> s/\([^@]@@*>\)\([FQX]*[`G][FQX]*[a-z]\([FQX]*[`G][FQX]*[a-z]\)*\)/\2\1/
> s/\([^@]\)\(@@*>\)\([FQX]*[`G]\)/\3\1@\2/
> s/\([^@]\)@\(@*>\)\([FQX]*[.,].\)/\3\1\2/
> s/\([^@]\)@\(@*>\)\([FQX]*%n*%\)/\3\1\2/
> s/\([^@]\)@\(@*>\)\([FQX]*[a-z]\)/\3\1\2/
> /@>./b e
> /@>$/b i
> s/X>/X:_/
> s/r>/_/
> s/t>/t:_/
> /_/b d
> /s>/{
> s//s:t@>/
> b e
> }
> /u>/{
> s//<;/
> b h
> }
> /m>/{
> s//)</
> b g
> }
> /p>/{
> s/p>/;/
> s/\([^;]*\);\([^;]*\);\([^|]*\)|\(n*\)/\1`:<\2%\4n%\3|\4n;;(\1;\3)|\4/
> b f
> }
> /P>/{
> s/P>/;/
> s/\([^;]*\);\(n*;[^;]*\);\([^|]*\)/P:<\2(\1\3)/
> b g
> }
> b i
> :f
> s/(\([^%)]*%\(n*\)%[^%)]*\)\(.*|\2;\)/\1(\3n/
> s/(\([^%)]*\))/\1/
> /(/!b h
> :g
> s/([^%)]*%\(n*\)%[^%)]*\(.*|\1;\)n/(\2/
> s/([^%)]*%\(n*\)%[^%)]*\(.*\)|\1;;\([^|]*\)|/(\2(\3)|/
> s/([^%)]*)//
> /(/b g
> :h
> s/:\([^:]*\)</:<\1/
> /:</!b i
> s/p:</;p@>/
> s/X:</(m@>/
> s/i:</i(m@>/
> s/t:</;u@>/
> s/%\(n*\)%:</;\1;P@>/
> />/b e
> s/f:</<`F/
> s/`:</_`/
> /\.:</{
> H
> s/.\.:</</
> x
> s/\n.*\(.\)\.:<.*/\1/
> x
> }
> /e:</{
> s//</
> x
> y/abcdefghijklmnopqrstuvwxyz/nopqrstuvwxyzabcdefghijklm/
> y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/NOPQRSTUVWXYZABCDEFGHIJKLM/
> p
> s/.*//
> x
> }
> /,:</{
> H
> s/.,:</</
> x
> s/\(\n\).*\(.\),:<.*/\1\2:n@o(p)q;r|s<t>u_v/
> s/\n\(.\).*\(.\)\1.*/\2/
> x
> }
> /P:</{
> s/P:<//
> s/\(n*;\)\([^|]*\)\(.*\)|\1n\(n*;\)\([^;]*;\)\([^|]*\)/\5\2\6\3|\1\4(\5\6)/
> /(/{
> s/;/</
> b f
> }
> s/\(n*;\)\([^|]*\)\(.*\)|\1;\([^;]*\);\([^|]*\)/\4<\2\5\3/
> }
> /s:</{
> s/s:<\([^;]*\);\([^;]*\);/<\2`\1(\2)/
> b f
> }
> /_/b d
> /</b h
> :i
> x
> /./{
> y/abcdefghijklmnopqrstuvwxyz/nopqrstuvwxyzabcdefghijklm/
> y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/NOPQRSTUVWXYZABCDEFGHIJKLM/
> p
> }
> d

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue Feb 11 23:58:51 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18iiOt-0005V3-00; Tue, 11 Feb 2003 23:57:11 +0200
Received: with LISTAR (v0.129a; list lang); Tue, 11 Feb 2003 23:56:58 +0200 (EET)
Received: from relay-3m.club-internet.fr ([194.158.104.42])
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18iiOA-0005UQ-00
	for lang@esoteric.sange.fi; Tue, 11 Feb 2003 23:56:26 +0200
Received: from club-internet.fr (lcbv4-3-22.n.club-internet.fr [213.44.106.22])
	by relay-3m.club-internet.fr (Postfix) with ESMTP id 2D136E0E7
	for <lang@esoteric.sange.fi>; Tue, 11 Feb 2003 22:57:14 +0100 (CET)
Message-ID: <3E4971D1.6D61DA04@club-internet.fr>
Date: Tue, 11 Feb 2003 22:57:37 +0100
From: Laurent Vogel <lvl@club-internet.fr>
X-Mailer: Mozilla 4.06 [fr] (Win95; I)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] [Thue] quine
Content-Type: multipart/mixed; boundary="------------BAFD6E10DE2C558AC9D3235F"
X-Spam-Score: 0.7 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18iiOA-0005UQ-00*unQYKJD6Abk*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: lvl@club-internet.fr
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18iiOt-0005V3-00*TkQXN6qFNMA*

Il s'agit d'un message multivolet au format MIME.
--------------BAFD6E10DE2C558AC9D3235F
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hi,

The main reason why I designed a variant of Thue regarding the way
output is performed, was to be able to produce the 99 bottles of
beer entry at 
  http://99-bottles-of-beer.ls-la.net/t.html#Thue

The variant is, that a rule like
  foo::=~bar
prints bar with no trailing newline, but a rule like
  foo::=~
prints one unique newline (and nothing else).
(I can provide patches to extant thue interpreters if requested)

However another benefit of being able to control what newline gets
printed, is that this variant allows self-replicating programs :-)
I join my attempt. It doesn't look very good, but after several
tries this was the first one which was reasonably short and had
lines less than 80 chars wide. 

Enjoy,

Laurent Vogel
--------------BAFD6E10DE2C558AC9D3235F
Content-Type: text/plain; charset=us-ascii; name="quine.t"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="quine.t"

_>::=~ Thue Quine (C) 2003 Laurent Vogel (Thue variant: "\n" only on "foo::=~")
_x>::=2210001112000100020120000112200210220120211220221000110x01
>0::=0>~00
_2::=_~2
_x01::=22100021120011001201200011112020200101222011220221000210x02
>1::=1>~01
~220::=~_
_x02::=22101001120021002201200021101211021011112020110122111220221010010x10
>2::=2>~02
1<::=<1
~21::=~<
_x10::=221010111022110210211221211022120220112200010220120011220221010110x11
2<::=<2
x<::=x>_
_0::=_~0
_x11::=221010211220011022012011100211021001112000010120011220221010210x12
_1::=_~1
0<::=<0
~00::=~0
_x12::=221020011120001101201111200021012021112010010121011220221020010x20
~01::=~1
~02::=~2
~10::=~::=
_x20::=2210201111201011012111201021012121112020010122011220221020110x21
~11::=~
~12::=~~
~20::=~>
_x21::=2210202112022110212211112020201101222111220221020210x22
>x::=<x
~221::=~x
_x22::=22111101122122002020002000100010220210101020200020201020001002212011x
::=
x_220201012><112202212010x>


--------------BAFD6E10DE2C558AC9D3235F--


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu Feb 13 00:37:40 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18j5Sx-000Biz-00; Thu, 13 Feb 2003 00:34:55 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 13 Feb 2003 00:34:42 +0200 (EET)
Received: from relay-1m.club-internet.fr ([194.158.104.40])
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18j5Sb-000Bim-00
	for lang@esoteric.sange.fi; Thu, 13 Feb 2003 00:34:33 +0200
Received: from club-internet.fr (liifi-13-71.n.club-internet.fr [213.44.44.71])
	by relay-1m.club-internet.fr (Postfix) with ESMTP id 25DB616D1
	for <lang@esoteric.sange.fi>; Wed, 12 Feb 2003 23:34:49 +0100 (CET)
Message-ID: <3E4ACC3C.4C0E4D3B@club-internet.fr>
Date: Wed, 12 Feb 2003 23:35:40 +0100
From: Laurent Vogel <lvl@club-internet.fr>
X-Mailer: Mozilla 4.06 [fr] (Win95; I)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: [sed] Quiz
References: <3E463234.8202F9F5@club-internet.fr> <3E480B6E.2CAE63B7@club-internet.fr> <3E48161D.B80C8787@club-internet.fr> <3E496F52.FF780EC7@club-internet.fr>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.9 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18j5Sb-000Bim-00*jGWnMkRraco*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: lvl@club-internet.fr
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18j5Sx-000Biz-00*RvAGxwlCh0g*

The obscure sed script is at: http://lvogel.free.fr/quizz.sed

> If you find, don't spoil the fun, just say you've found, so that
> others can try. Or, mail your comments using [spoiler] quizz as
> subject.
>
> (hint) It should be possible to find out without looking at the code,
> just by running it.
>
> (hint) It would be topical on lang@esoteric.sange.fi even if sed
> itself weren't.
> 
> (hint) It is the interpreter of a known esoteric language in disguise.

One more day, one more hint... 

(hint) Panu Kalliokoski surely found a long time ago, because it 
runs one of his programs (once correctly encoded of course)

Looks like I can go on for a long time... Please tell me if I should
stop bothering you.

Laurent

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu Feb 13 16:35:14 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18jKQ0-000FX9-00; Thu, 13 Feb 2003 16:32:52 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 13 Feb 2003 16:32:38 +0200 (EET)
Received: from post.it.helsinki.fi ([128.214.205.24])
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18jKPe-000FWr-00
	for lang@esoteric.sange.fi; Thu, 13 Feb 2003 16:32:30 +0200
Received: from xandru.it.helsinki.fi (mail@xandru.it.helsinki.fi [128.214.38.174])
	by post.it.helsinki.fi (8.12.2/8.12.2-SPAMmers-sod-off) with ESMTP id h1DEWUfu010377
	for <lang@esoteric.sange.fi>; Thu, 13 Feb 2003 16:32:30 +0200 (EET)
Received: from pkalliok by xandru.it.helsinki.fi with local (Exim 3.35 #1 (Debian))
	id 18jKPW-0001c7-00
	for <lang@esoteric.sange.fi>; Thu, 13 Feb 2003 16:32:22 +0200
Date: Thu, 13 Feb 2003 16:32:22 +0200
From: Panu Kalliokoski <pkalliok@cs.helsinki.fi>
To: lang@esoteric.sange.fi
Subject: [lang] Re: sed
Message-ID: <20030213143221.GG5962@ling.helsinki.fi>
Mail-Followup-To: lang@esoteric.sange.fi
References: <3DFF32EE.92CFEBC7@club-internet.fr> <000701c2a9a2$fbd8ca00$a481ef9b@lennie> <3E05CB10.A5FB1F50@club-internet.fr> <001201c2c265$f7aeaae0$5c16989e@oemcomputer> <20030130181441.GB23125@ling.helsinki.fi> <20030201211527.GA12339@iki.fi>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20030201211527.GA12339@iki.fi>
User-Agent: Mutt/1.4i
Sender: Panu Kalliokoski <pkalliok@xandru.it.helsinki.fi>
X-Spam-Score: -3.3 (---)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18jKPe-000FWr-00*w8AkSurNf0s*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.helsinki.fi
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18jKQ0-000FX9-00*v.ONYID6w7Q*

On Sat, Feb 01, 2003 at 11:15:27PM +0200, Heikki Kallasjoki wrote:
> Well, if Panu posts only quasi-esoteric stuff, why shouldn't I too.

Well, you guys' stuff was much more esoteric than mine... but
interestingly, it really seems to be easier to write symbol manipulation
programs in sed than actual text processing stuff.  Why?  Because (1)
sed is heavily line-oriented, so that for real text (where logical
elements  span multiple lines) you have to write all kinds of quirks,
(2) the state model of sed is horrible, so that it is _much_ easier
to write scripts that do not need to keep (much) state besides what
is input and what is output, and (3) because the flow model of sed is
so bad that we're always better off if we can use the powerful rewrite
rules to model flow instead of sed's native constructs.

An especially interesting feature of sed state is that ranges
(/.../,/.../) can be used to express simple flags.  Just that this
technique is hell, because ranges are inclusive...

Anyway, great work from you guys...

-- 
personal contact: atehwa@iki.fi, +35841 5323835
work contact: pkalliok@ling.helsinki.fi, +35850 3678003
kotisivu (henkkoht):	http://www.iki.fi/atehwa/
homepage (technical):	http://sange.fi/~atehwa/

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu Feb 13 22:09:38 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18jPdl-000H7b-00; Thu, 13 Feb 2003 22:07:25 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 13 Feb 2003 22:07:12 +0200 (EET)
Received: from relay-2m.club-internet.fr ([194.158.104.41])
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18jPdR-000H7N-00
	for lang@esoteric.sange.fi; Thu, 13 Feb 2003 22:07:05 +0200
Received: from club-internet.fr (lcbv2-3-162.n.club-internet.fr [213.44.105.162])
	by relay-2m.club-internet.fr (Postfix) with ESMTP id 0FEAD16B6
	for <lang@esoteric.sange.fi>; Thu, 13 Feb 2003 21:06:59 +0100 (CET)
Message-ID: <3E4BFB2C.457E0CDE@club-internet.fr>
Date: Thu, 13 Feb 2003 21:08:12 +0100
From: Laurent Vogel <lvl@club-internet.fr>
X-Mailer: Mozilla 4.06 [fr] (Win95; I)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: [sed] Quiz
References: <3E463234.8202F9F5@club-internet.fr> <3E480B6E.2CAE63B7@club-internet.fr> <3E48161D.B80C8787@club-internet.fr> <3E496F52.FF780EC7@club-internet.fr> <3E4ACC3C.4C0E4D3B@club-internet.fr>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.6 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18jPdR-000H7N-00*da3ERoGfjmE*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: lvl@club-internet.fr
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18jPdl-000H7b-00*EmkKujZGuOA*

What does the sed script at: http://lvogel.free.fr/quizz.sed do?
From the beginning of the week I posted hints, below. Here is a
new hint.

(hint) As can be seen when trying the script, the backquote is 
a valid character.

older hints:
> (hint) It should be possible to find out without looking at the 
>   code, just by running it.
> (hint) It would be topical on lang@esoteric.sange.fi even if sed
>   itself weren't.
> (hint) It is the interpreter of a known esoteric language in 
>   disguise.
> (hint) Panu Kalliokoski surely found a long time ago, because it
>   runs one of his programs (once correctly encoded of course).

I'm quite stubborn you know. Come on, is it so difficult to say
any of the following?
- you've found what the script does?
- you don't have a clue?
- you find this thread utterly boring and uninteresting?
- you hate me?
- you like chocolate?

Laurent Vogel

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Fri Feb 14 18:23:38 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18jib9-000Lfb-00; Fri, 14 Feb 2003 18:21:59 +0200
Received: with LISTAR (v0.129a; list lang); Fri, 14 Feb 2003 18:21:46 +0200 (EET)
Received: from [64.246.18.86] (helo=neuron.neuron1.com)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18jian-000LfS-00
	for lang@esoteric.sange.fi; Fri, 14 Feb 2003 18:21:38 +0200
Received: by neuron.neuron1.com (Postfix, from userid 33)
	id E744E6C3B1; Fri, 14 Feb 2003 16:21:34 +0000 (GMT)
To: lang@esoteric.sange.fi
Subject: [lang] Re: [sed] Quiz
From: Cal Henderson <cal@iamcal.com>
X-Sender: <cal@iamcal.com>
X-Mailer: CalMail
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Message-Id: <20030214162134.E744E6C3B1@neuron.neuron1.com>
Date: Fri, 14 Feb 2003 16:21:34 +0000 (GMT)
X-Spam-Score: 0.5 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18jian-000LfS-00*qTp1FV87kQY*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cal@iamcal.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18jib9-000Lfb-00*cvrF28ePU7Q*

At 20:08 GMT 13.02.03, Laurent Vogel wrote:
: I'm quite stubborn you know. Come on, is it so difficult to say
: any of the following?
: - you've found what the script does?
: - you don't have a clue?
    ^
    well, i have a few clues now :)
    it's an interpreter for an esolang, i just don't know which one
    first guess was bf, which i thinm is very wrong
    perhaps befunge, though i don't think so
    so another language

: - you find this thread utterly boring and uninteresting?
: - you hate me?
: - you like chocolate?
    ^
    yup. got me interested now ;)


--cal
"while you make pretty speeches, i'm being cut to shreds"


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Fri Feb 14 22:05:04 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18jm2z-000MKJ-00; Fri, 14 Feb 2003 22:02:57 +0200
Received: with LISTAR (v0.129a; list lang); Fri, 14 Feb 2003 22:02:44 +0200 (EET)
Received: from relay-5m.club-internet.fr ([194.158.104.44])
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18jm2f-000MK9-00
	for lang@esoteric.sange.fi; Fri, 14 Feb 2003 22:02:37 +0200
Received: from club-internet.fr (lcbv1-3-149.n.club-internet.fr [213.44.21.149])
	by relay-5m.club-internet.fr (Postfix) with ESMTP id 1DE05E0F6
	for <lang@esoteric.sange.fi>; Fri, 14 Feb 2003 21:02:48 +0100 (CET)
Message-ID: <3E4D4BA2.9B03C8E3@club-internet.fr>
Date: Fri, 14 Feb 2003 21:03:46 +0100
From: Laurent Vogel <lvl@club-internet.fr>
X-Mailer: Mozilla 4.06 [fr] (Win95; I)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: [sed] Quiz
References: <3E463234.8202F9F5@club-internet.fr> <3E480B6E.2CAE63B7@club-internet.fr> <3E48161D.B80C8787@club-internet.fr> <3E496F52.FF780EC7@club-internet.fr> <3E4ACC3C.4C0E4D3B@club-internet.fr> <3E4BFB2C.457E0CDE@club-internet.fr>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.9 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18jm2f-000MK9-00*npS0ndmF8Ns*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: lvl@club-internet.fr
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18jm2z-000MKJ-00*BukcFGyr8d.*

What does the sed script at: http://lvogel.free.fr/quizz.sed do?
From the beginning of the week I posted hints, below. 

Oh, I realize I may have been imprecise (I'm not a native english 
speaker). When I say that the script runs one of Panu's programs, 
I meant that the script runs a program he wrote (now corrected 
in the list of old hints below). And now for today's hint:

(hint) downloading the script is not even necessary any more, as 
the hints alone now contain enough details to find the name of 
the language.

Since I'll be away this week end, I give you also the hint for
tomorrow:

(hint) try the following input:
````x.y```fp.b.t.rq

older hints:
> (hint) It should be possible to find out without looking at the 
>   code, just by running it.
> (hint) It would be topical on lang@esoteric.sange.fi even if sed
>   itself weren't.
> (hint) It is the interpreter of a known esoteric language in 
>   disguise.
> (hint) Panu Kalliokoski surely found a long time ago, because it
>   runs a program he wrote (once correctly encoded of course).
> (hint) As can be seen when trying the script, the backquote is 
>   a valid character.

That's it. Now let's hope that at least somebody reports he's 
found when I come back on sunday, because I've hardly any hint
left. Of course I can always answer questions...

Laurent

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Sat Feb 15 00:58:19 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18jom0-000Mgt-00; Sat, 15 Feb 2003 00:57:36 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 15 Feb 2003 00:57:23 +0200 (EET)
Received: from glisan.hevanet.com ([198.5.254.5])
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18jolg-000Mgk-00
	for lang@esoteric.sange.fi; Sat, 15 Feb 2003 00:57:16 +0200
Received: from [130.94.161.238] (130-94-161-238-dsl.hevanet.com [130.94.161.238])
	by glisan.hevanet.com (8.10.2/8.10.2) with ESMTP id h1EMvCM07586
	for <lang@esoteric.sange.fi>; Fri, 14 Feb 2003 14:57:13 -0800 (PST)
Mime-Version: 1.0
X-Sender: cristofd@pop.hevanet.com
Message-Id: <a05111b00ba73239a4e22@[130.94.161.238]>
In-Reply-To: <3E4D4BA2.9B03C8E3@club-internet.fr>
References: <3E463234.8202F9F5@club-internet.fr>
 <3E480B6E.2CAE63B7@club-internet.fr> <3E48161D.B80C8787@club-internet.fr>
 <3E496F52.FF780EC7@club-internet.fr> <3E4ACC3C.4C0E4D3B@club-internet.fr>
 <3E4BFB2C.457E0CDE@club-internet.fr> <3E4D4BA2.9B03C8E3@club-internet.fr>
Date: Fri, 14 Feb 2003 14:57:14 -0800
To: lang@esoteric.sange.fi
From: "Daniel." <cristofd@hevanet.com>
Subject: [lang] Re: [sed] Quiz
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
X-Spam-Score: -1.1 (-)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18jolg-000Mgk-00*NX.jeckkghg*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cristofd@hevanet.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18jom0-000Mgt-00*Ex1pA/wUYYI*

Okay okay, I got it. And I like chocolate if people are giving it 
away for free.
-Daniel.
-- 
>>>++[<++++++++[<[<++>-]>>[>>]+>>+[-[->>+<<<[<[<<]<+>]>[>[>>]]]<[>
>>>[-<<[-]]+<[<+<]]>[<]+<<]<[>+<-]>>-]<cristofd@hevanet.com[-]>>]

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Mon Feb 17 18:10:54 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18knpI-0005Ml-00; Mon, 17 Feb 2003 18:09:04 +0200
Received: with LISTAR (v0.129a; list lang); Mon, 17 Feb 2003 18:08:51 +0200 (EET)
Received: from relay-4v.club-internet.fr ([194.158.96.115])
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18know-0005Mc-00
	for lang@esoteric.sange.fi; Mon, 17 Feb 2003 18:08:42 +0200
Received: from club-internet.fr (lcbv1-1-96.n.club-internet.fr [213.44.3.96])
	by relay-4v.club-internet.fr (Postfix) with ESMTP id 5C5FC16A3
	for <lang@esoteric.sange.fi>; Mon, 17 Feb 2003 17:08:39 +0100 (CET)
Message-ID: <3E510953.23983761@club-internet.fr>
Date: Mon, 17 Feb 2003 17:09:55 +0100
From: Laurent Vogel <lvl@club-internet.fr>
X-Mailer: Mozilla 4.06 [fr] (Win95; I)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: [sed] Quiz
References: <3E463234.8202F9F5@club-internet.fr>
	 <3E480B6E.2CAE63B7@club-internet.fr> <3E48161D.B80C8787@club-internet.fr>
	 <3E496F52.FF780EC7@club-internet.fr> <3E4ACC3C.4C0E4D3B@club-internet.fr>
	 <3E4BFB2C.457E0CDE@club-internet.fr> <3E4D4BA2.9B03C8E3@club-internet.fr> <a05111b00ba73239a4e22@[130.94.161.238]>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Spam-Score: 0.5 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18know-0005Mc-00*fgwfrkkbIsU*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: lvl@club-internet.fr
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18knpI-0005Ml-00*Y8hsZcfg70w*

Daniel wrote:
> 
> Okay okay, I got it. 

Not that I'm doubting your words, but to be sure you've found, could
you mention the name of one of the programs written for this 
language, without the extension (like, "fibo")?

> And I like chocolate if people are giving it away for free.

I never said I would be giving any chocolate, did I?

As for others on this list, please tell me, if you want to know the 
solution or if you want more hints.

Laurent

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Mon Feb 17 20:20:17 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18kpro-0005lt-00; Mon, 17 Feb 2003 20:19:48 +0200
Received: with LISTAR (v0.129a; list lang); Mon, 17 Feb 2003 20:19:34 +0200 (EET)
Received: from glisan.hevanet.com ([198.5.254.5])
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18kprT-0005lj-00
	for lang@esoteric.sange.fi; Mon, 17 Feb 2003 20:19:27 +0200
Received: from [130.94.161.238] (130-94-161-238-dsl.hevanet.com [130.94.161.238])
	by glisan.hevanet.com (8.10.2/8.10.2) with ESMTP id h1HIJOG06590
	for <lang@esoteric.sange.fi>; Mon, 17 Feb 2003 10:19:24 -0800 (PST)
Mime-Version: 1.0
X-Sender: cristofd@pop.hevanet.com
Message-Id: <a05111b03ba76d6667a4b@[130.94.161.238]>
In-Reply-To: <3E510953.23983761@club-internet.fr>
References: <3E463234.8202F9F5@club-internet.fr>	
 <3E480B6E.2CAE63B7@club-internet.fr> <3E48161D.B80C8787@club-internet.fr>
  <3E496F52.FF780EC7@club-internet.fr>
 <3E4ACC3C.4C0E4D3B@club-internet.fr>	
 <3E4BFB2C.457E0CDE@club-internet.fr> <3E4D4BA2.9B03C8E3@club-internet.fr>
 <a05111b00ba73239a4e22@[130.94.161.238]>
 <3E510953.23983761@club-internet.fr>
Date: Mon, 17 Feb 2003 10:19:22 -0800
To: lang@esoteric.sange.fi
From: "Daniel." <cristofd@hevanet.com>
Subject: [lang] Re: [sed] Quiz
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
X-Spam-Score: -1.9 (-)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18kprT-0005lj-00*oELghAA8EwY*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cristofd@hevanet.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18kpro-0005lt-00*/ZqSCLaAtiQ*

>  > Okay okay, I got it.
>
>Not that I'm doubting your words, but to be sure you've found, could
>you mention the name of one of the programs written for this
>language, without the extension (like, "fibo")?

powers2
trivial3

(But that doesn't prove that I figured out the other little twist you 
put on the language. Ubjrire, V qvq.)

>  > And I like chocolate if people are giving it away for free.
>
>I never said I would be giving any chocolate, did I?

No. I was making a little joke.

-Daniel.
-- 
        ()  ASCII ribbon campaign      ()    Hopeless ribbon campaign
        /\    against HTML mail        /\  against gratuitous bloodshed

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Mon Feb 17 21:54:28 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18krKt-00062g-00; Mon, 17 Feb 2003 21:53:55 +0200
Received: with LISTAR (v0.129a; list lang); Mon, 17 Feb 2003 21:53:41 +0200 (EET)
Received: from relay-2m.club-internet.fr ([194.158.104.41])
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18krKY-00062W-00
	for lang@esoteric.sange.fi; Mon, 17 Feb 2003 21:53:34 +0200
Received: from club-internet.fr (liifi-13-194.n.club-internet.fr [213.44.44.194])
	by relay-2m.club-internet.fr (Postfix) with ESMTP id 3F691169C
	for <lang@esoteric.sange.fi>; Mon, 17 Feb 2003 20:53:30 +0100 (CET)
Message-ID: <3E513E08.9135A55@club-internet.fr>
Date: Mon, 17 Feb 2003 20:54:48 +0100
From: Laurent Vogel <lvl@club-internet.fr>
X-Mailer: Mozilla 4.06 [fr] (Win95; I)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: [sed] Quiz
References: <3E463234.8202F9F5@club-internet.fr>	
	 <3E480B6E.2CAE63B7@club-internet.fr> <3E48161D.B80C8787@club-internet.fr>
	  <3E496F52.FF780EC7@club-internet.fr>
	 <3E4ACC3C.4C0E4D3B@club-internet.fr>	
	 <3E4BFB2C.457E0CDE@club-internet.fr> <3E4D4BA2.9B03C8E3@club-internet.fr>
	 <a05111b00ba73239a4e22@[130.94.161.238]>
	 <3E510953.23983761@club-internet.fr> <a05111b03ba76d6667a4b@[130.94.161.238]>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.6 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18krKY-00062W-00*CgbQA/LwUBM*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: lvl@club-internet.fr
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18krKt-00062g-00*rKo6Y.LBm.c*

Daniel wrote:
> 
> >  > Okay okay, I got it.
> >
> >Not that I'm doubting your words, but to be sure you've found, could
> >you mention the name of one of the programs written for this
> >language, without the extension (like, "fibo")?
> 
> powers2
> trivial3

OKay guys, Daniel has found. Congratulations.
As others still did not voiced whether they're bored or not, can you
just tell us what hint was more useful?

(By the way, the script executes powers2 and trivial3, but I killed
it after a long time before fibo did any output - there ARE some 
speed limitations when doing things in sed!)

> (But that doesn't prove that I figured out the other little twist you
> put on the language. Ubjrire, V qvq.)

Well, the little twist (rot13 encryption, to name it) was just to 
avoid making it TOO obvious... The commented version doesn't have it
(I'm fixing one or two sed portability issues before releasing it).

Laurent

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu Feb 20 22:02:13 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18lwsE-000Lok-00; Thu, 20 Feb 2003 22:00:50 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 20 Feb 2003 22:00:36 +0200 (EET)
Received: from relay-1m.club-internet.fr ([194.158.104.40])
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18lwrl-000LoZ-00
	for lang@esoteric.sange.fi; Thu, 20 Feb 2003 22:00:21 +0200
Received: from club-internet.fr (lcbv1-4-101.n.club-internet.fr [213.44.102.101])
	by relay-1m.club-internet.fr (Postfix) with ESMTP id 2113C1697
	for <lang@esoteric.sange.fi>; Thu, 20 Feb 2003 21:00:36 +0100 (CET)
Message-ID: <3E55341E.228D50A5@club-internet.fr>
Date: Thu, 20 Feb 2003 21:01:34 +0100
From: Laurent Vogel <lvl@club-internet.fr>
X-Mailer: Mozilla 4.06 [fr] (Win95; I)
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] unlambda v1 interpreter in sed
Content-Type: multipart/mixed; boundary="------------61536D2418A49EEA04057927"
X-Spam-Score: 1.9 (+)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18lwrl-000LoZ-00*EYgS6ZK1smI*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: lvl@club-internet.fr
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18lwsE-000Lok-00*U2ufrQiFpSs*

Il s'agit d'un message multivolet au format MIME.
--------------61536D2418A49EEA04057927
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Here it is finally. I've manage to speed it up and solve some bugs
since the last (obfuscated) version. I've got still ideas for
speed increase, but I don't have the time, so here is the
definitive version for now.

Laurent Vogel
--------------61536D2418A49EEA04057927
Content-Type: text/plain; charset=us-ascii; name="unlambda.sed"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="unlambda.sed"

# unlambda v1 interpreter in sed 
# 2003-02-19 - Laurent Vogel - http://lvogel/free.fr
# GPL version 2 or later (see http://www.gnu.org/copyleft/gpl.html)

# This is an interpreter for unlambda version 1. 
# Unlambda is an esoteric language invented by David Madore in 1999.
# You should really refer to the unlambda page for the complete description,
# of the language, including a tutorial and other things:
# http://www.eleves.ens.fr:8080/home/madore/programs/unlambda/unlambda.html
# but nevertheless here is a sketchy description of unlambda:
#
# The only data type in unlambda are functions. A function, when applied
# to another function, yields a third function, and so on: 
# `<f><g> is the notation for the application of <f> to <g>. 
# When evaluating `<f><g>, <f> is first evaluated, then <g> 
# (unless <f> did evaluate to the builtin d) then <f> is applied to <g>.
# The unlambda builtin functions are:
#  i  the identity function: `i<a> returns <a>
#  k  the constant generator function: `k<a> returns a function <f>
#     such as `<f><b> returns <a>. In short: ``k<a><b> returns <a>
#  s  the substitution function: ```s<a><b><c> returns ``<a><c>`<b><c>
#  v  a shortcut for ```s``s`kskk``s``s`kskk: `v<a> returns v
#  .x (for any ASCII char x): `.x<a> outputs x then returns <a>
#  r  another notation for .<newline>
#  d  `d<a> does not evaluate <a>, but ``d<a><b> evaluates `<a><b>
#  c  ("call with current continuation") is difficult to explain: 
#     `c<a> returns `<a><cont> for a new function <cont> called a 
#     continuation; if later `<cont><b> is evaluated, then it is as if at 
#     the time `c<a> was evaluated <b> was returned instead of `<a><cont>.
# An unlambda program consists of one expression. Spaces and comments
# (everything between a sharp sign '#' and the end of line) are allowed
# and ignored.
#
# This version of the interpreter does not implement the unlambda v2 
# builtins. There are no unlambda v2 programs small enough anyway.
#
# The following Programs from the CUAN (Comprehensive Unlambda Archive 
# Network) run successfully:
#   Hello, Square, power2, count, count2, trivial, trivial2, trivial3,
#   fibo, Triangle, pattern(*)
#   Jean.Marot/Quine, Quine2
#   Denis.Auroux/q2, q3, q5
#   Panu.Kalliokoski/Quine2
# (*) modified to print stars and newlines. 
# Bigger programs were not tested.

# Sed note
# --------
# Some attempt has been made to make this script portable. It is known to
# run on the following sed interpreters:
# GNU sed 3.02 and newer: if the last line of the unlambda program does 
#   not end with a newline, then no newlines are ever printed. I consider 
#   this to be a bug in GNU sed.
# HHsed: runs up to seven times faster than GNU sed-4.0.5 on my machine, 
#   once the following two lines are commented out in sedexec.c:
#     if (++jumpcnt >= JUMPLIMIT)
#       ABORT2(INFLOOP, lnum);
#   You will also need to increase MAXBUF for some programs.

# When parsing the program, the hold buffer contains: 
# the line number, then a space, then the program parsed up to now
x

# Initialize the hold buffer
1s/^/0 /

# Increment line number
s/ /i /
:inc
s/^[^ ]*.i/&0123456789i0_/
s/^i/1/
s/\(.\)i[^_]*\1\(i*.\)[^_]*_/\2/
/^[^ ]*i/b inc

# Back to the pattern space
x

# Obtain a newline at the beginning of the pattern space. Successfully
# parsed input will go left of the newline. A space is added first for
# buggy sed whose G does not add a newline over an empty pattern space.
s/^/ /
G
s/^\([^\n]*\)\(\n\).*/\2\1/

:parse
# Remove space and TABs
s/\(\n\)[ 	]*/\1/
# Remove comments
s/\n#.*//
# Rename '.x' for some special chars x into ',y', y being a letter. 
# Special chars, and reason why:
# - ':@();|<>_':!#{} used as special markers in [^x]* sed patterns
# - '`': made special to allow s/`i//g
/\n\.[:@();|<>_`!#{}]/{
  s//&:a@b(c)d;e|f<g>h_i`j!k#l{m}n~/
  s/\(\n\)\.\(.\)[^~]*\2\([^~]\)[^~]*~/,\3\1/
}
# .<newline>
s/\n\.$/r/
# .x in the default case 
s/\(\n\)\(\..\)/\2\1/
# Plain tokens
s/\(\n\)\([cdikrsv`]*\)/\2\1/
# Illegal input
/\n[^cdikrsv.`# 	]/{
  # remove anything before the first offending char 
  s/.*\n//
  # print an error message including the line number
  x
  s/^\([0-9]*\).*/Syntax error line \1:/p
  x
  q
}
# Continue while not at the end of this line
/\n./b parse

# Accumulate to the hold buffer
H

# Go on parsing while the last line is not reached
$!d

# Get back program from the hold buffer, and remove the line number.
# The hold buffer will now contain pending output. Since some sed
# interpreters have weird behaviour when the hold buffer is empty, 
# make sure there is always a space in it.
s/.*/ /
x
s/[^ ]* //
s/\n//g

# Verify that the program contains one, and only one, expression.
# This is done by skipping one expression to the right. After skipping
# error messages are printed if the program is too short or too long,
# else we come back at :valid
s/^/?>/
s/$/|##a/
b skip
:valid

# Initialize the continuation database.
# A continuation is represented in the pattern space as
#   |[I];[N];{A};{B}
# [I] is the continuation unique identifier ([I] matches /^aa*$/);
# [N] is the reference counter of the continuation (matches /^a*$/);
#    [N] is '' when only one continuation reference exists, and it
#    is increased by one 'a' per additional reference. The refcounts
#    are updated when copying or deleting parts of the pattern space.
# {A} and {B} are the 'before' and 'after' part of the unlambda
#    state at the time c was applied (i.e. the unlambda state was
#    {A}`c{expr}{B})
# Continuations are deleted when no longer referenced, but the 
# unique identifier remains in the base in the form  |[i] ready
# to be re-used to serve as the unique identifier of another 
# continuation. For instance, after evaluating `cc
#  `cc -> `c<c1> -> `<c1><c2> -> <c2>
# we obtain the following pattern space:
#   <%aa%|aa;;;|a|
# where 'aa' is the ID of a continuation referenced once (%aa%) 
# and 'a' is a free ID.
# (see also the explanation on continuations below)

# Position the evaluation cursor at the beginning of the unlambda program.
s/^/_/

# Meaning of special chars:
# Evaluation steps
# ----------------
# '_' is the evaluation cursor, at the left of the expression to evaluate. 
# 'x>' is the skip right operator (x is any char except @).
#     branching to :skip will drop '>x' to the right skipping exactly 
#     one (balanced) unlambda expression. 
# '<' is the move left operator. Branching to :left will move '<' to the
#     left until ':' is reached
# ':' is used to block <
#
# They are used as follows: '_' first before the expression to eval.
# during eval it may be necessary to leave a token 'x:' and skip right over
# expressions. We then use 'y>' and branch to :skip which moves '>y'
# farther to the right. '>y' proceeds and ultimately should return with a
# '<' which goes back to some 'z:' yielding 'z:<' which itself eventually:
# - either drops a '_' and branches to :eval
# - or keeps a '<' and branches to :left
# - or goes right by dropping a 't>' and branching to :skip
#
# Because of this, treatment of builtin 'x' will typically involve code
# fragments in different places:
# - handling '_`x' located after :eval
# - handling '>x' located after :skip
# - handling 'x:<' located after :left
#
# At any time there is at most one of '_', '<' and '>' in the pattern space
#
# other special chars
# -------------------
# '(...)' are used to delimit zones to delete (by branching to :delete) or
#     to scan after copy to increase the refcount of any continuation
#     references found in them (by branching to :incref). 
#     A '<' must be present somewhere in the data outside '(...)', as 
#     both :delete and :incref will branch to :left when done.
# '|' is used to delimit continuations in the continuation database.
# ';' is used to delimit fields in the continuation database, and to
#     serve as marker for copies during the execution of complex builtins.
# '#' is used to delimit the skip reference free IDs
# '!' is used by :skip internally
# '{}' are used to note 'skip references', a way of caching the execution
#     of skip to speed things up (three times faster under HHsed)
#
# Encoding of unlambda expressions
# --------------------------------
# '`'            is the apply operator
# cdikrsv        are builtins
# '.x' and ',x'  are the printing builtins
# 'D<expr>'      is the promise `d<expr>
# 'K<expr>'      is the result of evaluating `k<expr>
# 'S<expr>'      is the result of evaluating `s<expr>
# 'T<e1><e2>'    is the result of evaluating ``s<e1><e2>
# '%aaa%'        is a continuation reference

# eval/apply
:eval

# `i is a no-op
s/`i//g

# Uncomment the following line when debugging to print the state from 
# time to time (the state is not printed after each eval, because 
# several evaluations might occur between two jumps to :eval)
#p

# Expressions other than apply evaluate to themselves, with or without
# skip reference
s/_\([^{`]\)/<\1/
s/_\({[^,]*,[^`]\)/<\1/

# kill the skip reference
s/_\(`*\){\([^,]*,\)\(.*\)}\2\([^#]*#\)/_\1\3\4\2/

# <expr> is not evaluated when evaluating `d<expr>
s/_`d/<D/
/</b left

# ``dAB - go evaluate B with 'e>', leaving '`:' to evaluate `AB
s/_`D/`:e>/
# ``kAB - leave A, go delete B with 'K>'
s/_`K/K>/
# ``sAB - replace S with T, go evaluate B with 'e>'
s/_`S/Te>/
# ```sABC - leave '`:`' behind to form the first ``A of ``AC`BC,
# and go over A activate 'f>' that will transform BC in C`BC
s/_`T/`:`f>/
/>/b skip

# `k and `s just eval their argument and store it in K<expr> or S<expr>.
# the '<' ultimately resulting from evaluating the argument will move
# through 'K' or 'S', giving 'K<expr>' or 'S<expr>' as return value.
s/_`k/K_/
s/_`s/S_/

# These evaluate their argument, leaving an 'x:' token to do the proper 
# job after '<' returns. See at the bottom of the file, after :left,
# what is done then.
s/_``/`:_`/
s/_`\([rc]\)/\1:_/
# .x becomes x.: to distinguish easily z.:< (.z) from z:< (delete)
s/_`\([.,]\)\(.\)/\2\1:_/
# Prepare leaving 'v', evaluate expr, then delete it using 'z:<'
s/_`v/vz:_/
s/_`\(%a*%\)/\1:_/

/_/b eval

# Skip right 1 expression. Starting with '>@' we move this token to
# the right, adding one '@' per '`' or 'T', going over any number of
# 'S', 'D', 'K', and removing one @ per builtin, until no more @ is left. 
# Note: since ',' is always followed by a lowercase letter, any number of
# ',' can also be skipped together with 'S', 'D', 'K' (because one cannot
# encounter ',`', ',T' ...)
# Some caching is implemented: long expressions are surrounded by opening
# and closing "skip references": {ab, ... }ab, . At any time, for each 
# skip-ref ID "ab", either there is exactly one opening and one closing
# skip-ref with this ID in the entire pattern space, or there are no 
# skip-refs with this ID and this ID is in the free-skip-ref-ID-list.
# skip-refs are mutated when copying (see :incref below) and go to the
# free list when deleted (see :delete)
#
:skip
# remember the start of the skip
s/>/!>@/
: skiploop

# increase depth for each '`' or 'T'
s/>\(>*@@*\)\([SDK]*[`T]\)/\2>>\1@/
# decrease depth for each builtin
s/>\(>*@*\)@\([SDK,]*[a-z]\)/\2>>\1/
s/>\(>*@*\)@\([SDK]*\..\)/\2>>\1/
s/>\(>*@*\)@\([SDK]*%a*%\)/\2>>\1/

# jump over a skip ref
s/>\(>*@*\)@\([SDK]*\){\([^,]*,\)\(.*\)}\3/\2{\3\4}\3>\1/

# if the overall number of skip steps done this time is big, recurse.
# There is a tradeof here between doing the least steps in :skip
# but increasing the number of skiprefs makes it slower to match
# them in pairs, and also increases the size of the pattern space,
# thus making *all* failing pattern matching slower.
# the number of '>' below can be changed. The optimum value probably 
# depends on the sed interpreter and the machine.
/>>>>>>>>>>>>>>>>>>>>>*@/{
  s/>>*\(@@*\)/\1!>@/
  b skiploop
}

# If we haven't finished skipping one expression at the end of the 
# pattern space, either there is a bug in this script, or the program 
# does not start with a complete unlambda expression.
/@|/{
  s/.*/Syntax error: unexpected end of file/
  q
}

/>>*@@*[^@]/b skiploop

# end of recurse
/@!/{
  # we need a new skip ref. 
  /##/{
    :newskref
    # copy the next one in place
    s/#\([^#][^;]*\)/\1,&/
    # generate the next one
    s/$/;/
    :inca
    s/#;/#a/
    s/#[^#;]*[^#;];/&abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ;a~/
    s/#\([^#;]*\)\([^#;]\);[^~]*\2\(;*[^~]\)[^~]*~/#\1\3/
    /#[^;]*;/b inca
    # if coming from incref, go back there
    /^</b mutate
  }
  # get a skip ref among the free skip ref list and replace the !
  s/@\(@*\)!\([^@!>]*\)>>*\([^#]*#\)\([^,]*,\)/{\4\2}\4>\1\3/
  b skiploop
}

# end of skip - get the action char from last !
s/\(.\)!\([^>]*\)>*/\2>\1/

# After :skip

# '>e' for eval
s/>e/_/
# Evaluate the expression, then delete it with 'z:<'
s/>K/z:_/

# >f, >g, >h are part of the ```s[A][B][C] evaluation explained below. 
s/>g/g:_/
/_/b eval

# ```s[A][B][C] evaluation 
# ------------------------
#    _`T[A][B][C] -> `:`f>[A][B][C] -> `:`[A]>f[B][C]
# the remaining task is to evaluate [C] and replace [B][C] by [C]`[B][C]. 
#    >f[B][C] -> f:g>[B][C] -> f:[B]>g[C] -> (eval C) f:[B]g:<[C]
# -> f:[B];h>[C] -> f:[B];[C]>h -> <[C]`[B]([C]) -> (incref) <[C]`[B][C]
# Note that ';' can only be inserted after [C] was evaluated, because 
# evaluating [C] can need ';' too.
/>f/{
  s//f:g>/
  b skip
}
/>h/{
  s//;/
  s/f:\([^;:]*\);\([^;:]*\);/<\2`\1(\2)/
  b incref
}

# delete
/>z/{
  s//)</
  b delete
}

# Continuation (1) - `c<expr>
# ---------------------------
# `c<expr> first evaluates the expression, then surrounds it with ';'
# _`c[E] -> c:_[E] -> (eval E) c:<[E] -> ;[E]c> -> ;[E];
# At this stage the pattern space is either:
#   {A};[E];{B}|...|[I]|...    
# if there is a free ID [I], or:
#   {A};[E];{B}|[I-1];...
# if all IDs from 1 to I-1 are taken.
# {A} and {B} denote the before and after parts of the unlambda state.
# The unlambda state will then become
#   ({A})`:<[E]%[I]%({B})|...
# with a new continuation (added, or replacing the free ID) being:
#   |[I];;{A};{B}
# Finally we jump to incref over ({A}) and ({B}) as they have been copied.
#
/>c/{
  s//;/
  # try reusing a free ID 
  /^\([^;]*\);\([^;]*\);\([^|]*\)\(.*\)|\(a*\)|/{
    s//(\1)`:<\2%\5%(\3)\4|\5;;\1;\3|/
    b incref
  }
  # else create our ID as being 1 plus the biggest (leftmost) ID
  s/^\([^;]*\);\([^;]*\);\([^|]*\)|\(a*\)/(\1)`:<\2%\4a%(\3)|\4a;;\1;\3|\4/
  b incref
}

# Continuation (2) - `<cont><expr>
# --------------------------------
# _`%[I]%[E] -> %[I]%_[E] -> (eval E) %[I]%<[E] -> ;[I];C>[E] -> ;[I];[E];
# At this stage the pattern space is:
#     {a};[I];[E];{b}|...|[I];[N];{A};{B}|...
# where {a} and {b} represent parts of the current unlambda state,
# We first erase {a} and {b}, so that the refcount [N] of continuation [I] 
# has the right value: 
#  -> C:<[I];[E]({a}{b})|...|[I];[N];{A};{B}|...
#  -> C:<[I];[E]|...|[I];[N];{A};{B}|...
# Now, if '[N]' equals '', we will remove the continuation from the base,
# keeping [I] as a free identifier.
#  -> [I];[E]|...|[I];;{A};{B}|...
#  -> {A}<[E]{B}|...|[I]|...
# else if '[N]' is '[n]a', the continuation stays, so me must incref over
# the copied {A} and {B}:
#  -> [I];[E]|...|[I];[n]a;{A};{B}|...
#  -> ({A})<[E]({B})|...|[I];[n];{A};{B}|... 
#
/>C/{
  s//;/
  # first erase current state
  s/\([^;]*\);\(a*;[^;]*\);\([^|]*\)/C:<\2(\1\3)/
  b delete
}
# Called before running to check that the program contains exactly one
# expression
/>?/{
  />?|/{
    s/>?//
    b valid
  }
  s/.*>?//
  s/|.*//
  # revert ',y' into '.x'
  s/,[a-n]/&:a@b(c)d;e|f<g>h_i`j!k#l{m}n~/g
  s/,\([a-n]\)[^~]*\([^~]\)\1[^~]*~/.\2/g
  # exit with error message
  i\
Syntax error: trailing garbage
  q
}
  
b done

# Increment the refcount of any continuation whose reference lays 
# between ( ). Called for each copied zone after copy. Remove ( )
# and branch to :left when done.
:incref
s/(\([^{%)]*%\(a*\)%[^%)]*\)\(.*|\2;\)/\1(\3a/
s/(\([^{%)]*\))/\1/

# skip-ref mutation: {ab,...}ab, -> {cd,...}cd,
/([^{%)]*{/{
  # generate a new skip-ref if needed
  /##/{
    s/^/</
    b newskref
    :mutate
    s/^<//
  }
  # replace current skip ref by a new one for the copy
  # the [^)]* is essential here, in case the original is still 
  # on the right from here (needed when copying continuation
  # parts as the continuation refcounts are only updated to
  # the right).
  s/(\([^{%)]*{\)\([^,]*,\)\([^)]*}\)\2\([^#]*#\)\([^,]*,\)/\1\5(\3\5\4/
}
/(/b incref
b left

# Delete between ( and ) included. If continuation references are found, 
# decrement their refcount and mark them for deletion too (but keeping
# the free ID) if it goes below zero; branch to :left when done
:delete
s/([^}%)]*%\(a*\)%[^%)]*\(.*|\1;\)a/(\2/
s/([^}%)]*%\(a*\)%[^%)]*\(.*\)|\1;;\([^|]*\)|/(\2|\1(\3)|/
s/([^}%)]*)//
s/([^}%)]*}\([^,]*,\)\([^#]*#\)/(\2\1/
/(/b delete

# < moves left over commands.
:left
s/:\([^:]*\)</:<\1/
/:</!b done

# After left
# Delete one expression: 
# z:<[A] -> (z>[A] -> ([A]>z -> ([A])< -> (delete) <
s/z:</(z>/

# Part of ```s[A][B][C] handling, see explanation above.
s/g:</;h>/

# Continuation handling
s/c:</;c>/
s/%\(a*\)%:</;\1;C>/
/>/b skip

# `: means re-eval ` when next eval is done
/`:</{
  s//_`/
  b eval
}

# Output functions all leave a '<'
# Print the hold buffer and empty it.
/r:</{
  s//</
  x
  s/.//
  p
  s/.*/ /
  x
}
# Append the char to the hold buffer
/\(.\)\.:</{
  s//<\1/
  H
  s/<./</
  x
  s/\n[^<]*<\(.\).*/\1/
  x
}
# Append the converted char to the hold buffer
/\(.\),:</{
  s//<\1/
  H
  s/<./</
  x
  # handle ',y' -> x conversion
  s/\(\n\)[^<]*<\(.\).*/\1\2:a@b(c)d;e|f<g>h_i`j!k#l{m}n/
  s/\n\(.\).*\(.\)\1.*/\2/
  x
}

# Part of `<cont><expr> handling - see explanation above
/C:</{
  # if the reference count does not goes below zero, keep the continuation
  # and incref over the duplicated parts.
  /C:<\(a*;\)\([^|]*\)\(.*\)|\1a\(a*;\)\([^;]*\);\([^|]*\)/{
    s//(\5)<\2(\6)\3|\1\4\5;\6/
    b incref
  }
  # else remove the continuation but keep the free ID.
  s/C:<\(a*\);\([^|]*\)\(.*\)|\1;;\([^;]*\);\([^|]*\)/\4<\2\5\3|\1/
}

/</b left

:done

# flush output if pending
x
/../{
  # remove the dumb first char
  s/^ //
  p
}

# quit 
d


--------------61536D2418A49EEA04057927--


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Fri Feb 21 23:56:03 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18mL7j-0000TO-00; Fri, 21 Feb 2003 23:54:27 +0200
Received: with LISTAR (v0.129a; list lang); Fri, 21 Feb 2003 23:54:13 +0200 (EET)
Received: from cepheus.azstarnet.com ([169.197.56.195])
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18mL6y-0000TF-00
	for lang@esoteric.sange.fi; Fri, 21 Feb 2003 23:53:40 +0200
Received: from andromeda (andromeda.azstarnet.com [169.197.53.210])
	by cepheus.azstarnet.com (8.12.2/8.12.2) with ESMTP id h1LLrXYv002488
	for <lang@esoteric.sange.fi>; Fri, 21 Feb 2003 14:53:34 -0700 (MST)
X-Sent-via: StarNet http://www.azstarnet.com/
Date: Fri, 21 Feb 2003 14:53:33 -0700 (MST)
From: Jeff Johnston <jeffryj@azstarnet.com>
X-X-Sender:  <jeffryj@andromeda>
To: <lang@esoteric.sange.fi>
Subject: [lang] [ESO] proposed esofunk specification
In-Reply-To: <3E4BFB2C.457E0CDE@club-internet.fr>
Message-ID: <Pine.GSO.4.31.0302131611001.3263-100000@andromeda>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-Spam-Score: -0.9 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18mL6y-0000TF-00*mAuJ2pmWCrI*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: jeffryj@azstarnet.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18mL7j-0000TO-00*xiovbbtnU6w*


Hi,

Every once in a while I think of ESO (the ESoteric Operating system).
I've recently gotten motivated again and written up a 0.01 specification
for almost every component.  The spec isn't finished or polished by any
means (I'll need your input for that).

I've also started to implement ESO 0.01, based on my specification.  It is
written for the Intel 8088 processor, so should run on most machines.  It
should not be difficult to port to other platforms, but that is probably a
bad idea right now until all the details are decided.

Full source code is included.  You will need NASM and GCC (or DJGPP) to
build and link the ESO image.  A copy of the disk image is included so if
you just want to test without building you can use that.

Get ESO here:
http://www.azstarnet.com/~jeffryj/eso.html

A few comments.  This OS is not secure.  It uses a cooperative
multitasking system.  It assumes it has complete control at any given time
so would not be suited for multiple CPUs.  I have no plans to implement
protected mode or virtual memory.  Maximum program size is 32kB, but a
program can request as much memory as it needs.  I haven't put any work
into the multitasking part yet, for example each process having its own
screen memory (I'll probably use screen pages for the 8088 version).  I
really see this OS as a toy, so I want to have fun coding it too and not
drive myself crazy :)

Any comments or suggestions to this specification are welcome and
encouraged, especially on ESOFUNK, I think that needs the most work.

Thanks,
Jeff




-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Wed Feb 26 11:47:09 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18ny7P-000GYW-00; Wed, 26 Feb 2003 11:44:51 +0200
Received: with LISTAR (v0.129a; list lang); Wed, 26 Feb 2003 11:44:38 +0200 (EET)
Received: from [64.246.18.86] (helo=neuron.neuron1.com)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18ny70-000GYK-00
	for lang@esoteric.sange.fi; Wed, 26 Feb 2003 11:44:26 +0200
Received: by neuron.neuron1.com (Postfix, from userid 33)
	id 89F0D6C227; Wed, 26 Feb 2003 09:44:23 +0000 (GMT)
To: lang@esoteric.sange.fi
Subject: [lang] brainf**k debugger in javascript
From: Cal Henderson <cal@iamcal.com>
X-Sender: <cal@iamcal.com>
X-Mailer: CalMail
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Message-Id: <20030226094423.89F0D6C227@neuron.neuron1.com>
Date: Wed, 26 Feb 2003 09:44:23 +0000 (GMT)
X-Spam-Score: 0.8 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18ny70-000GYK-00*iQKIDadEpB6*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cal@iamcal.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18ny7P-000GYW-00*jrRJI1LbIUM*

I don't know if this has been done before, 
but i've done it anyway:

http://www.iamcal.com/misc/bf_debug/


tested on Win IE6.SP1, NS6.1 and Mozilla 1.3b

it's relatively dom/ecma compliant, but there's
some browser detection code to get around the
fact that win ie needs \r not \n for breaks in
a <pre>


--cal


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Fri Feb 28 05:25:17 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18ob7x-000Pj8-00; Fri, 28 Feb 2003 05:24:01 +0200
Received: with LISTAR (v0.129a; list lang); Fri, 28 Feb 2003 05:23:47 +0200 (EET)
Received: from f65.pav2.hotmail.com ([64.4.37.65] helo=hotmail.com)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18ob7c-000Piy-00
	for lang@esoteric.sange.fi; Fri, 28 Feb 2003 05:23:41 +0200
Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC;
	 Thu, 27 Feb 2003 19:23:08 -0800
Received: from 12.208.170.128 by pv2fd.pav2.hotmail.msn.com with HTTP;
	Fri, 28 Feb 2003 03:23:08 GMT
X-Originating-IP: [12.208.170.128]
From: "Tristan Parker" <lmtbl@hotmail.com>
To: lang@esoteric.sange.fi
Bcc: 
Subject: [lang] new language proposal
Date: Thu, 27 Feb 2003 19:23:08 -0800
Mime-Version: 1.0
Content-Type: text/plain; format=flowed
Message-ID: <F65YH3ru07a6NckhnG10003c693@hotmail.com>
X-OriginalArrivalTime: 28 Feb 2003 03:23:08.0607 (UTC) FILETIME=[B71A94F0:01C2DED8]
X-Spam-Score: 0.8 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18ob7c-000Piy-00*aMZ2o17F1zQ*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: lmtbl@hotmail.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18ob7x-000Pj8-00*IPrWx3ot93c*

Here's a language I just came up with, I'm not that good at implementation 
though, so if anyone enjoys that sort of stuff I would be honored to have it 
implemented. The language itself is based on the notation used on a page 
about the sigma function, and reflects all explanations of the Turing 
machine that I have found far better than most imperative languages.

Proposal for language: Emil
Paradigm: Rewriting

Environment:
Code space operates on any number of labeled lines. Data space operates on 
an infinite array of cells. Each cell is intialised to 0 by default, and can 
be overwritten by any ASCII character.

Syntax:
A line takes the format
A: BCDE FGHI ...
where A is the line label, B is the condition to test for, C is the 
character to write, D is the direction to move, and E is the label to jump 
for. F G H and I are simply equivalent and this pattern can be repeated as 
many times as necisary for the line. Spaces separate a label from a line, 
and separate conditionals, and a carriage return designates end of line.

Commands:
A:       Where A is any character, baegin a new line labeled A
\x       Where x is any integer, replace x with ASCII character
>        When treated as direction, move right
<        When treated as direction, move left
.        When treated as direction, don't move


_________________________________________________________________
Help STOP SPAM with the new MSN 8 and get 2 months FREE*  
http://join.msn.com/?page=features/junkmail


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Fri Feb 28 10:29:52 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18oftC-0000e1-00; Fri, 28 Feb 2003 10:29:07 +0200
Received: with LISTAR (v0.129a; list lang); Fri, 28 Feb 2003 10:28:53 +0200 (EET)
Received: from [64.246.18.86] (helo=neuron.neuron1.com)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18ofss-0000dj-00
	for lang@esoteric.sange.fi; Fri, 28 Feb 2003 10:28:46 +0200
Received: by neuron.neuron1.com (Postfix, from userid 33)
	id 20F8B6C227; Fri, 28 Feb 2003 08:28:44 +0000 (GMT)
To: lang@esoteric.sange.fi
Subject: [lang] Re: new language proposal
From: Cal Henderson <cal@iamcal.com>
MIME-Version: 1.0
Content-Type: TEXT/plain; CHARSET=US-ASCII
X-Mailer: WeaselMail <http://software.iamcal.com>
Message-Id: <20030228082844.20F8B6C227@neuron.neuron1.com>
Date: Fri, 28 Feb 2003 08:28:44 +0000 (GMT)
X-Spam-Score: 0.8 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18ofss-0000dj-00*EQ.c/KrYUdU*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cal@iamcal.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18oftC-0000e1-00*UCPpWu6fvm.*

At 03:25 GMT 28.02.03, lang@esoteric.sange.fi wrote:
: Environment:
: Code space operates on any number of labeled lines. Data space operates on
: an infinite array of cells. Each cell is intialised to 0 by default, and can 
: be overwritten by any ASCII character.

so we have a bf style store, with each cell holding 0-254 (you mean 8-bit acsii
i assume). the difference is it's infinite. assuming the dp starts at 0, what 
happens if we move left? is it a runtime error or do we have negatively
numbered memory slots?
 
: Syntax:
: A line takes the format
: A: BCDE FGHI ...
: where A is the line label, B is the condition to test for, C is the 
: character to write, D is the direction to move, and E is the label to jump
: for. F G H and I are simply equivalent and this pattern can be repeated as
: many times as necisary for the line. Spaces separate a label from a line,
: and separate conditionals, and a carriage return designates end of line.

are line labels a single letter/character? from the jump convention (E) i
assume they would have to be (unless you allowed "foo: ABCfoo") so a program
can only have up to 256 lines?

how does the conditional work? i assume it tests the current cell and branches
to the jump point if it's a certain value. does it work as such:
 
a--Z : jump to label Z if current cell contains 'a'
!--A : jump to label A if current cell contains '!'

when you say "C is the character to write" i assume you mean write into the 
current memory slot. so the following program would store an 'A' in slot 0:

-A--

for the direction argument, this simply increments or decrements the dp (or
leaves it alone).

what about any sort of io? since you stipulate that the store is initialized
to 0, then the language doesn't seem to be able to take any input, though 
writing to the store is certainly outputting.

it does look as though it would be trivial to convert any bf program into 
this language, assuming that there were 255 or less loops in it ("[---]")
since each will need it's own label as a jump point. infact, it can deal with 
1 less loop i think. this prog:

+++[+++[++]+++]+++

would need these parts as seperate lines:

+++
[+++
[++]+++]+++

since each ']' can be mid-line but each '[' is a jump target, as is the 
start of the program.

does the program terminate once the "last line" is reached? what happens
if the program tries to jump to a label that doesn't exist?

--cal
"light up my life, like a very last cigarette"



-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Sat Mar 01 04:19:11 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18owZq-0005Ak-00; Sat, 01 Mar 2003 04:18:15 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 01 Mar 2003 04:18:01 +0200 (EET)
Received: from f167.pav2.hotmail.com ([64.4.37.167] helo=hotmail.com)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18owZP-00051e-00
	for lang@esoteric.sange.fi; Sat, 01 Mar 2003 04:17:47 +0200
Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC;
	 Fri, 28 Feb 2003 18:17:14 -0800
Received: from 12.208.170.128 by pv2fd.pav2.hotmail.msn.com with HTTP;
	Sat, 01 Mar 2003 02:17:13 GMT
X-Originating-IP: [12.208.170.128]
From: "Tristan Parker" <lmtbl@hotmail.com>
To: lang@esoteric.sange.fi
Bcc: 
Subject: [lang] Re: new language proposal
Date: Fri, 28 Feb 2003 18:17:13 -0800
Mime-Version: 1.0
Content-Type: text/plain; format=flowed
Message-ID: <F167qAbMU7XyNgbACYg000014c3@hotmail.com>
X-OriginalArrivalTime: 01 Mar 2003 02:17:14.0148 (UTC) FILETIME=[AC79C640:01C2DF98]
X-Spam-Score: 0.8 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18owZP-00051e-00*94uO8Zj6whA*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: lmtbl@hotmail.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18owZq-0005Ak-00*lfIZUVYqmWE*

Oops. Wow. I look back now and realise just how unclear that spec was. 
Trying again.

so we have a bf style store, with each cell holding 0-254 (you mean 8-bit 
acsii
i assume).
>>I suppose that could be implementation dependant

the difference is it's infinite. assuming the dp starts at 0, what
happens if we move left? is it a runtime error or do we have negatively
numbered memory slots?
>>Memory is fully infinite, so we have negative slots.

are line labels a single letter/character? from the jump convention (E) i
assume they would have to be (unless you allowed "foo: ABCfoo") so a program
can only have up to 256 lines?
>>Labels are a single character, but if you allow unicode characters you 
>>could have more lines.


how does the conditional work? i assume it tests the current cell and 
branches
to the jump point if it's a certain value. does it work as such:

a--Z : jump to label Z if current cell contains 'a'
!--A : jump to label A if current cell contains '!'
>>Yes, that's how I envisioned it.

when you say "C is the character to write" i assume you mean write into the
current memory slot. so the following program would store an 'A' in slot 0:
-A--
>>Yep. Sorry for being vague, but if you can't be vague, what can you be?

for the direction argument, this simply increments or decrements the dp (or
leaves it alone).
>>Right.

what about any sort of io? since you stipulate that the store is initialized
to 0, then the language doesn't seem to be able to take any input, though
writing to the store is certainly outputting.
>>oops. I wasn't really thinking about that, so I suppose I should have said 
>>that input goes to the tape at initialization and is read off at 
>>termination. All other cells would be 0x00 (null) and only tape cells not 
>>set to that would be output.

it does look as though it would be trivial to convert any bf program into
this language, assuming that there were 255 or less loops in it ("[---]")
since each will need it's own label as a jump point. infact, it can deal 
with
1 less loop i think. this prog:

+++[+++[++]+++]+++

would need these parts as seperate lines:

+++
[+++
[++]+++]+++

since each ']' can be mid-line but each '[' is a jump target, as is the
start of the program.

does the program terminate once the "last line" is reached? what happens
if the program tries to jump to a label that doesn't exist?
>>Program termination is probably based on a jump to a nonexistant line (the 
>>equivalent of a "Halting state")

I hope this is more lucid than the last try.

_________________________________________________________________
STOP MORE SPAM with the new MSN 8 and get 2 months FREE*  
http://join.msn.com/?page=features/junkmail


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Sun Mar 02 19:23:21 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18pX9a-0009I1-00; Sun, 02 Mar 2003 19:21:34 +0200
Received: with LISTAR (v0.129a; list lang); Sun, 02 Mar 2003 19:21:21 +0200 (EET)
Received: from [64.246.18.86] (helo=neuron.neuron1.com)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18pX9F-0009Hq-00
	for lang@esoteric.sange.fi; Sun, 02 Mar 2003 19:21:13 +0200
Received: by neuron.neuron1.com (Postfix, from userid 33)
	id 2D08F6C3B1; Sun,  2 Mar 2003 17:21:10 +0000 (GMT)
To: lang@esoteric.sange.fi
Subject: [lang] Re: new language proposal
From: Cal Henderson <cal@iamcal.com>
MIME-Version: 1.0
Content-Type: TEXT/plain; CHARSET=US-ASCII
X-Mailer: WeaselMail <http://software.iamcal.com>
Message-Id: <20030302172110.2D08F6C3B1@neuron.neuron1.com>
Date: Sun,  2 Mar 2003 17:21:10 +0000 (GMT)
X-Spam-Score: 0.8 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18pX9F-0009Hq-00*gNPxZHfyXqs*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cal@iamcal.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18pX9a-0009I1-00*Pv.D9Tc8YsQ*

At 02:19 GMT 01.03.03, lang@esoteric.sange.fi wrote:
: >>Memory is fully infinite, so we have negative slots.
: 
: >>Labels are a single character, but if you allow unicode characters you 
: >>could have more lines.
: 
: >>oops. I wasn't really thinking about that, so I suppose I should have said 
: >>that input goes to the tape at initialization and is read off at 
: >>termination. All other cells would be 0x00 (null) and only tape cells not
: >>set to that would be output.
: >>Program termination is probably based on a jump to a nonexistant line (the 
: >>equivalent of a "Halting state")
: 
: I hope this is more lucid than the last try.

right, i've made a pretty basic interpreter in perl, which you can grab 
from:
http://www.iamcal.com/files/emil.txt

it's very basic - takes an input source file, starts with a store 
initalized to nulls (which wont match any conditional) and the dp set to 
zero. a simple trace is shown while running and after the program has 
terminated, a dump of the store is shown.

a sample prog to run...

a: Zh>Z Ze>Z Zl>Z Zl.Z lo>b
b: Zp<Z Zl.Z la.d
c: Zl>Z Zo.Z oa.d

...which prints "help" or with slight modification...

a: Zh>Z Ze>Z Zl>Z Zl.Z lo>c
b: Zp<Z Zl.Z la.d
c: Zl>Z Zo.Z oa.d

...it prints "hello". this should give an idea of flow control.

something to note is that conditional, output and jump arguments
will only take letters and numbers. any other characters will cause
the whole op to be ignored (check the trace to see).


--cal
"i said what you wanted to hear"



-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Sat Mar 08 18:23:09 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18rh3l-0004NR-00; Sat, 08 Mar 2003 18:20:29 +0200
Received: with LISTAR (v0.129a; list lang); Sat, 08 Mar 2003 18:20:16 +0200 (EET)
Received: from pop.hevanet.com ([198.5.254.15])
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18rh3S-0004N2-00
	for lang@esoteric.sange.fi; Sat, 08 Mar 2003 18:20:10 +0200
Received: from [130.94.161.238] (130-94-161-238-dsl.hevanet.com [130.94.161.238])
	by pop.hevanet.com (8.11.6/8.11.6) with ESMTP id h28GK4t69313;
	Sat, 8 Mar 2003 08:20:05 -0800 (PST)
Mime-Version: 1.0
X-Sender: cristofd@pop.hevanet.com
Message-Id: <a05111b01ba8fc43e18d0@[130.94.161.238]>
Date: Sat, 8 Mar 2003 08:20:05 -0800
To: lang@esoteric.sange.fi, friends-of-brainfuck@koeln.ccc.de
From: "Daniel." <cristofd@hevanet.com>
Subject: [lang] brainfuck web page
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
X-Spam-Score: 0.5 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18rh3S-0004N2-00*WIb647qY3Jo*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cristofd@hevanet.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18rh3l-0004NR-00*QTfLSaTqYP.*

For anyone who hasn't yet seen it, I thought I'd announce the 
existence of my brainfuck site. All my brainfuck programs (and later 
improvements to them) show up there before working their way into the 
archive, and there are some other things too. Also, I've compiled 
some of the more important and neglected issues that brainfuck 
implementors should think about, under the title "The Epistle to the 
Implementors", and I'm hoping people will read it. The page is at 
http://www.hevanet.com/cristofd/brainfuck/ (moved from its former 
location at cs.pdx.edu, as a precaution against their noticing I 
graduated years ago and cancelling the account). I'd welcome comments 
on any of it.
-Daniel Cristofani.
-- 
>>>++[<++++++++[<[<++>-]>>[>>]+>>+[-[->>+<<<[<[<<]<+>]>[>[>>]]]<[>
>>>[-<<[-]]+<[<+<]]>[<]+<<]<[>+<-]>>-]<cristofd@hevanet.com[-]>>]

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Wed Mar 12 09:32:20 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18t0hV-00012h-00; Wed, 12 Mar 2003 09:30:57 +0200
Received: with LISTAR (v0.129a; list lang); Wed, 12 Mar 2003 09:30:43 +0200 (EET)
Received: from lilly.csoft.net ([63.111.22.101] helo=mail102.csoft.net)
	by oiva.sange.fi with smtp (Exim 4.10)
	id 18t0hC-00012B-00
	for lang@esoteric.sange.fi; Wed, 12 Mar 2003 09:30:38 +0200
Received: (qmail 90082 invoked by uid 2567); 12 Mar 2003 07:33:46 -0000
Received: from localhost (sendmail-bs@127.0.0.1)
  by localhost with SMTP; 12 Mar 2003 07:33:46 -0000
Date: Wed, 12 Mar 2003 02:33:46 -0500 (EST)
From: Jeffry Johnston <jeffryj@lilly.csoft.net>
X-X-Sender: jeffryj@lilly
To: lang@esoteric.sange.fi
Subject: [lang] [bf] BFBASIC Compiler
In-Reply-To: <a05111b01ba8fc43e18d0@[130.94.161.238]>
Message-ID: <20030312022745.V88450-100000@lilly>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-Spam-Score: 0.0 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18t0hC-00012B-00*gjLmx5qI4Mk*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: jeffryj@lilly.csoft.net
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18t0hV-00012h-00*PnDkTEL.r.k*

Hi,

I've written a Basic to BF compiler.  It's been in the works for a while,
but I had a clear mind today and got the initial version done (0.50).  It
runs on DOS/Windows, probably will work on dosemu too.

http://lilly.csoft.net/~jeffryj/bfbasic.zip

Let me know what you think.

Thanks,
Jeff



-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Fri Mar 14 14:15:17 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.10)
	id 18to44-0009tK-00; Fri, 14 Mar 2003 14:13:32 +0200
Received: with LISTAR (v0.129a; list lang); Fri, 14 Mar 2003 14:13:19 +0200 (EET)
Received: from lilly.csoft.net ([63.111.22.101] helo=mail102.csoft.net)
	by oiva.sange.fi with smtp (Exim 4.10)
	id 18to3l-0009su-00
	for lang@esoteric.sange.fi; Fri, 14 Mar 2003 14:13:13 +0200
Received: (qmail 34419 invoked by uid 2567); 14 Mar 2003 12:16:50 -0000
Received: from localhost (sendmail-bs@127.0.0.1)
  by localhost with SMTP; 14 Mar 2003 12:16:50 -0000
Date: Fri, 14 Mar 2003 07:16:50 -0500 (EST)
From: Jeffry Johnston <jeffryj@lilly.csoft.net>
X-X-Sender: jeffryj@lilly
To: lang@esoteric.sange.fi
Subject: [lang] [bf] BFBASIC Compiler version 0.7
In-Reply-To: <20030312022745.V88450-100000@lilly>
Message-ID: <20030314070714.I33248-100000@lilly>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-Spam-Score: 0.0 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18to3l-0009su-00*8qNpuMwzpfg*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: jeffryj@lilly.csoft.net
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18to44-0009tK-00*Y7Z5C7QXui6*


Hi,

I've done a major rewrite of most parts of the the compiler.  Now any
variable or array names can be used.  Computations can be done with almost
any combination of variables (for example A=B+C, not just A=A+B).
Multiple arrays are accessible.  Variables and arrays can be created on
the fly or DIMensioned.  Many new commands have been added. The source
code has been cleaned up and is more structured, comments added.  I have
released the code under the GPL.  If someone was crazy enough to try a C
compiler, this code would give a pretty good start at it.

No examples are included this time.. but it's really starting to feel a
lot like Basic.  No complex expressions yet, but most of the individual
computation pieces are there, they just need to be put together.

Some things like GOSUB/RETURN can be created from existing commands but
will come later when its not 5am. :P

http://lilly.csoft.net/~jeffryj/bfbasic.zip

What a day.. it's been fun :)
Jeff



-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue Mar 25 21:34:24 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18xuA0-000KgL-00; Tue, 25 Mar 2003 21:32:36 +0200
Received: with LISTAR (v0.129a; list lang); Tue, 25 Mar 2003 21:32:23 +0200 (EET)
Received: from mk-smarthost-3.mail.uk.tiscali.com ([212.74.114.39])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18xu9d-000Kdw-00
	for lang@esoteric.sange.fi; Tue, 25 Mar 2003 21:32:13 +0200
Received: from [80.46.166.13] (helo=hedwig)
	by mk-smarthost-3.mail.uk.tiscali.com with esmtp (Exim 4.10)
	id 18xu8h-0007iC-00
	for lang@esoteric.sange.fi; Tue, 25 Mar 2003 19:31:15 +0000
From: "Matthew Westcott" <matthew@west.co.tt>
To: lang@esoteric.sange.fi
Date: Tue, 25 Mar 2003 19:31:35 -0000
MIME-Version: 1.0
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
Subject: [lang] Re: [bf] BFBASIC Compiler version 0.7
Message-ID: <3E80AE97.19472.2D65EDB7@localhost>
Priority: normal
References: <20030312022745.V88450-100000@lilly>
In-reply-to: <20030314070714.I33248-100000@lilly>
X-mailer: Pegasus Mail for Win32 (v3.12c)
X-Spam-Score: -26.1 (--------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18xu9d-000Kdw-00*j/8.RajpdxA*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: matthew@west.co.tt
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18xuA0-000KgL-00*S8dYQiFBzqU*

On 14 Mar 2003, at 7:16, Jeffry Johnston wrote:

> I've done a major rewrite of most parts of the the compiler.  Now any
> variable or array names can be used.  Computations can be done with almost
> any combination of variables (for example A=B+C, not just A=A+B).
> Multiple arrays are accessible.  Variables and arrays can be created on
> the fly or DIMensioned.  Many new commands have been added. The source
> code has been cleaned up and is more structured, comments added.  I have
> released the code under the GPL.  If someone was crazy enough to try a C
> compiler, this code would give a pretty good start at it.

In the absence of comments from anybody more 'learned', allow me to
say - this is a wonderful thing you've done here. It's really starting
to look as if a C-to-Brainfuck compiler is, if not simple, at least
humanly possible.

Were I to attempt such a thing, I'd start by implementing a sort of
virtual machine in BFBasic, to provide such luxuries as a proper stack
and full random-access memory, so we've got something more
conventional to work with. However, the 256-element limit on arrays is
perhaps a little too restrictive for that...

All of which leads me to my main question - is this 256-element limit
a direct result of the standard (official?) Brainfuck specification
having single-byte cells (a convention which I shall refer to as BF8)?
If so, I reckon it would be relatively easy to implement a 16-bit (or
more) variant of Brainfuck on top of BF8, by doubling up cells and
translating instructions so that the carrying from one cell to another
is handled appropriately. Once this is done, it ought to be trivial
enough to target BFBasic to compile to BF16, thus eliminating this
256-element limit and paving the way for a 'real' language to be
implemented in BFBasic. (And before anyone says anything - I realise
that, strictly speaking, a system with a fixed 16/32/64-bit memory is
no closer to being Turing-complete than one with a 256-byte array -
but I think we can get away with it because that's exactly what real
computers do...)

I had a go at doing a BF16-to-BF8 translator, but didn't get very far
due to my lack of experience of programming Brainfuck itself -
perhaps someone less faint-hearted could take up the challenge.

- Matthew

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Wed Mar 26 02:06:39 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18xyQD-0008AW-00; Wed, 26 Mar 2003 02:05:37 +0200
Received: with LISTAR (v0.129a; list lang); Wed, 26 Mar 2003 02:05:23 +0200 (EET)
Received: from pop.hevanet.com ([198.5.254.15])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18xyPt-00089u-00
	for lang@esoteric.sange.fi; Wed, 26 Mar 2003 02:05:17 +0200
Received: from [130.94.161.238] (130-94-161-238-dsl.hevanet.com [130.94.161.238])
	by pop.hevanet.com (8.11.6/8.11.6) with ESMTP id h2Q05Es38932
	for <lang@esoteric.sange.fi>; Tue, 25 Mar 2003 16:05:14 -0800 (PST)
Mime-Version: 1.0
X-Sender: cristofd@pop.hevanet.com
Message-Id: <a05111b00baa671365e6e@[130.94.161.238]>
In-Reply-To: <3E80AE97.19472.2D65EDB7@localhost>
References: <20030312022745.V88450-100000@lilly>
 <3E80AE97.19472.2D65EDB7@localhost>
Date: Tue, 25 Mar 2003 16:05:16 -0800
To: lang@esoteric.sange.fi
From: "Daniel." <cristofd@hevanet.com>
Subject: [lang] Re: [bf] BFBASIC Compiler version 0.7
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
X-Spam-Score: -9.9 (---------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18xyPt-00089u-00*yeKLcs2L1pA*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cristofd@hevanet.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18xyQD-0008AW-00*eaStZl4W8Ok*

>In the absence of comments from anybody more 'learned', allow me to
>say - this is a wonderful thing you've done here.

As one of the learned, I'll second that. :/

>It's really starting
>to look as if a C-to-Brainfuck compiler is, if not simple, at least
>humanly possible.

Maybe. Whether running its output at any reasonable speed is 
computerly possible is another question.

>Were I to attempt such a thing, I'd start by implementing a sort of
>virtual machine in BFBasic, to provide such luxuries as a proper stack
>and full random-access memory, so we've got something more
>conventional to work with. However, the 256-element limit on arrays is
>perhaps a little too restrictive for that...
>
>All of which leads me to my main question - is this 256-element limit
>a direct result of the standard (official?

"Yes, I squeezed another ridiculous 56 bytes out of the compiler. They have
their price, though: The new compiler requires OS 2.0, operates on a byte
array instead of longwords..."

So, bytes are official if anything is. It's easy enough to write 
programs that don't assume anything about the size of the cells, and 
most existing programs seem to be like that, though a few will be 
radically slowed down or even broken. So for an implementor to use 
cells larger than bytes in the pursuit of some advantage seems to be 
a judgement call rather than a sin. But for a brainfuck program to 
use the upper ranges is usually a serious mistake--not just because 
it's severely nonportable, but because it can slow things down 
dramatically. Even with an optimizing compiler, any mildly complex 
operation takes time proportional to the size of the numbers 
involved; without one, even moving a number takes that much time. For 
this reason I think implementing a virtual machine in a 16-bit 
brainfuck is a mistake. I think it's a more promising approach to 
simulate 32-bit (or 10-decimal-digit, or 8-hex-digit...) cells in 
8-bit brainfuck, and do arithmetic &c. on the simulated cells.

>) Brainfuck specification
>having single-byte cells (a convention which I shall refer to as BF8)?
>If so, I reckon it would be relatively easy to implement a 16-bit (or
>more) variant of Brainfuck on top of BF8, by doubling up cells and
>translating instructions so that the carrying from one cell to another
>is handled appropriately. Once this is done, it ought to be trivial
>enough to target BFBasic to compile to BF16, thus eliminating this
>256-element limit and paving the way for a 'real' language to be
>implemented in BFBasic. (And before anyone says anything - I realise
>that, strictly speaking, a system with a fixed 16/32/64-bit memory

meaning one that can be addressed with a 16/32/64-bit number, as 
opposed to one whose elements are 16/32/64-bit numbers?

>is
>no closer to being Turing-complete than one with a 256-byte array -
>but I think we can get away with it because that's exactly what real
>computers do...)
>
>I had a go at doing a BF16-to-BF8 translator, but didn't get very far
>due to my lack of experience of programming Brainfuck itself -
>perhaps someone less faint-hearted could take up the challenge.

There's a BF16 interpreter written in BF8 here, anyway:
http://home.planet.nl/~faase009/Ha_vs_bf_inter.html#BD

Anyway.
-Daniel.
-- 
>>>++[<++++++++[<[<++>-]>>[>>]+>>+[-[->>+<<<[<[<<]<+>]>[>[>>]]]<[>
>>>[-<<[-]]+<[<+<]]>[<]+<<]<[>+<-]>>-]<cristofd@hevanet.com[-]>>]

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Wed Mar 26 21:43:04 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18yGmY-000EYq-00; Wed, 26 Mar 2003 21:41:54 +0200
Received: with LISTAR (v0.129a; list lang); Wed, 26 Mar 2003 21:41:40 +0200 (EET)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd5mo2so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18yGmA-000EXn-00
	for lang@esoteric.sange.fi; Wed, 26 Mar 2003 21:41:31 +0200
Received: from pd3mr3so.prod.shaw.ca (pd3mr3so-ser.prod.shaw.ca [10.0.141.179])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HCD00DKIG0DKB@l-daemon> for lang@esoteric.sange.fi; Wed,
 26 Mar 2003 12:41:01 -0700 (MST)
Received: from pn2ml4so.prod.shaw.ca
 (pn2ml4so-qfe0.prod.shaw.ca [10.0.121.148]) by l-daemon
 (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HCD0003DG0DGP@l-daemon> for lang@esoteric.sange.fi; Wed,
 26 Mar 2003 12:41:01 -0700 (MST)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with SMTP id <0HCD00KIXG0CSY@l-daemon> for lang@esoteric.sange.fi; Wed,
 26 Mar 2003 12:41:01 -0700 (MST)
Date: Wed, 26 Mar 2003 13:40:37 -0600
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Cat's Eye Technologies website updated
To: lang@esoteric.sange.fi
Message-id: <20030326134037.53353dff.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
X-Spam-Score: 0.0 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18yGmA-000EXn-00*wpN1NIBBnus*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18yGmY-000EYq-00*ZSqdaB9qEfs*

It may not make up for my long periods of inactivity[1], but when I
update my website, I *really* update my website!

  http://www.catseye.mb.ca/

It's now running on a different machine, under a different OS, with
different server software, and an almost completely different layout.
And *gasp* I actually updated a couple of projects in the process.
Hope I can get around to updating some of the others in the near future.

Most old links to it shouldn't break, but they might bend - i.e. they'll
likely be redirected up a level.  Not all the old content is there yet,
and what is there isn't all nice and orderly, but there's some new
stuff (mostly non-language projects though.)

The server software has some experimental features; for example,
filename completion (it will attempt to expand any URL that ends in a
plus sign), and automatic tarballing (add .tgz to the end of any
directory name in any directory that supports it.)  These should help
you find and get what you want from it.  The webserver software
(OpenFlax) is open source and it's available from the site too.

-Chris

[1] taking a few years off to find and fall in love with a linguist is a
good excuse, isn't it?  :)

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Wed Mar 26 21:43:04 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18yGmX-000EYe-00; Wed, 26 Mar 2003 21:41:53 +0200
Received: with LISTAR (v0.129a; list lang); Wed, 26 Mar 2003 21:41:39 +0200 (EET)
Received: from lilly.csoft.net ([63.111.22.101] helo=mail102.csoft.net)
	by oiva.sange.fi with smtp (Exim 4.12)
	id 18yGmE-000EY5-00
	for lang@esoteric.sange.fi; Wed, 26 Mar 2003 21:41:34 +0200
Received: (qmail 25574 invoked by uid 2567); 26 Mar 2003 19:47:38 -0000
Received: from localhost (sendmail-bs@127.0.0.1)
  by localhost with SMTP; 26 Mar 2003 19:47:38 -0000
Date: Wed, 26 Mar 2003 14:47:38 -0500 (EST)
From: Jeffry Johnston <jeffryj@lilly.csoft.net>
X-X-Sender: jeffryj@lilly
To: lang@esoteric.sange.fi
Subject: [lang] Re: [bf] BFBASIC Compiler version 0.7
In-Reply-To: <3E80AE97.19472.2D65EDB7@localhost>
Message-ID: <20030326143509.T22619-100000@lilly>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-Spam-Score: -19.5 (-------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18yGmE-000EY5-00*cs3CCUr0uJE*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: jeffryj@lilly.csoft.net
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18yGmX-000EYe-00*ImlEUxuve8Y*



On Tue, 25 Mar 2003, Matthew Westcott wrote:

Hi,

Thanks for your ideas.... at least now I don't think I was totally crazy
to do this :)

> All of which leads me to my main question - is this 256-element limit
> a direct result of the standard (official?) Brainfuck specification
> having single-byte cells (a convention which I shall refer to as BF8)?

That is the main reason, definitely.  A second reason is that the array
code I wrote (putting a byte into the array, taking a byte out of the
array), only allows one cell for the array element offset.  If it were
recoded to allow 2 cells then we could have 16 bit (65536 storage spaces).
If anyone wants to tackle this, I can post my array code docs that I made
when writing and testing the code orginally.  This could also be done for
the line number code so that there is not a limit of 256 line numbers.
This will become necessary for more complex looping/control structures
like for...next and full if...then...else...end if, otherwise you'd run
out of line numbers. Also, it gives a little room forthe compiler to claim
a range of line numbers, and it can internally map names to numbers, etc.

> If so, I reckon it would be relatively easy to implement a 16-bit (or
> more) variant of Brainfuck on top of BF8, by doubling up cells and
> translating instructions so that the carrying from one cell to another
> is handled appropriately.

Writing a BF interpreter/compiler to handle 16-bit cells is really easy
(at least on the 8088), you just use the full AX instead of AL.  It's not
too much harder on 6502.  I'd guess that at least one of these is already
written, because of that 16-bit pi calculating program.  Might be better
to stay with the 8-bit standard tho.

Thanks
calamari


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Wed Mar 26 23:01:28 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18yI12-000IaO-00; Wed, 26 Mar 2003 23:00:56 +0200
Received: with LISTAR (v0.129a; list lang); Wed, 26 Mar 2003 23:00:43 +0200 (EET)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd3mo1so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18yI0g-000IZi-00
	for lang@esoteric.sange.fi; Wed, 26 Mar 2003 23:00:34 +0200
Received: from pd6mr1so.prod.shaw.ca
 (pd6mr1so-qfe3.prod.shaw.ca [10.0.141.216]) by l-daemon
 (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HCD0007TJOWOP@l-daemon> for lang@esoteric.sange.fi; Wed,
 26 Mar 2003 14:00:32 -0700 (MST)
Received: from pn2ml2so.prod.shaw.ca
 (pn2ml2so-qfe0.prod.shaw.ca [10.0.121.146]) by l-daemon
 (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HCD001DQJOWIW@l-daemon> for lang@esoteric.sange.fi; Wed,
 26 Mar 2003 14:00:32 -0700 (MST)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with SMTP id <0HCD000OMJOVFA@l-daemon> for lang@esoteric.sange.fi; Wed,
 26 Mar 2003 14:00:32 -0700 (MST)
Date: Wed, 26 Mar 2003 15:00:09 -0600
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: [bf] BFBASIC Compiler version 0.7
In-reply-to: <a05111b00baa671365e6e@[130.94.161.238]>
To: lang@esoteric.sange.fi
Message-id: <20030326150009.744096e2.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
References: <20030312022745.V88450-100000@lilly>
 <3E80AE97.19472.2D65EDB7@localhost> <a05111b00baa671365e6e@[130.94.161.238]>
X-Spam-Score: -26.1 (--------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18yI0g-000IZi-00*fNMqHnwTuwE*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18yI12-000IaO-00*mCy0Id5361Y*

On Tue, 25 Mar 2003 16:05:16 -0800
"Daniel." <cristofd@hevanet.com> wrote:

> [Matthew Westcott]
> >Were I to attempt such a thing, I'd start by implementing a sort of
> >virtual machine in BFBasic, to provide such luxuries as a proper
> >stack and full random-access memory, so we've got something more
> >conventional to work with. However, the 256-element limit on arrays
> >is perhaps a little too restrictive for that...
> >
> >All of which leads me to my main question - is this 256-element limit
> >a direct result of the standard (official?
> 
> "Yes, I squeezed another ridiculous 56 bytes out of the compiler. They
> have their price, though: The new compiler requires OS 2.0, operates
> on a byte array instead of longwords..."
> 
> So, bytes are official if anything is.

So Brainfuck compilers that don't require [Amiga] OS 2.0 are officially
broken, too?  :)

That is to say - I don't think Urban intended his program to be a
reference implementation.

In my mind, the Brainfuck language does not specify limits.  Limits are
artefacts of implementation, accepted in order to achieve goals like
having a bloody small compiler.

The bare facts are that Brainfuck programs that assume that 255+1=0 will
not run correctly on some implementations, and that Brainfuck programs
that assume that 255+1=256 will not run correctly on some
implementations.

Same goes for 65535+1=0|65536 or any other modulus case.

A really generally applicable (as opposed to minimal) implementation
should handle all cases ("be liberal in what you accept.")

Along the same lines, a really portable Brainfuck program won't assume
that 255+1 is even defined ("be conservative in what you produce.") 
It'd still break on implementations of Brainfuck where 16+1=0 (but I
think those can safely be assumed to be very, VERY rare.)

That said, BF8 and BF16 (and BF32 and BF57 and whatever else) are viable
dialects of Brainfuck, with *limitations specified at the language
level*, and if it becomes more convenient to work in those terms, so be
it.

Matthew Westcott also wrote:
> (And before anyone says anything - I realise
> that, strictly speaking, a system with a fixed 16/32/64-bit memory is
> no closer to being Turing-complete than one with a 256-byte array -
> but I think we can get away with it because that's exactly what real
> computers do...)

Real computers are probably Turing-complete, though.

My definition of Turing-complete:

A system is Turing-complete if, given unlimited resources, it can solve
any computable problem.

The key word is "given."  It doesn't require that it already has
unlimited resources.  Even a real computer with a 16-bit address space
could be given multiple memory pages, or serial RAM, or some such.

Question: does such a modification change the language?

Maybe.

If the language explicitly admits the possibility (of adding
page-swapping or memory-mapped I/O to a paper tape or whatever,) then
it's Turing-complete.

If the language explicitly forbids the possibility, then it's not.

The unfortunate bit is that many languages don't say anything about it
either way.

Generally, machine languages for computer archectures admit that
page-swapping and memory-mapping are possibilities - although sometimes
it is less than wholly explicit.  It is almost universally assumed,
because it is such a common engineering technique.  Does such an
accepted practice count as Turing-complete?  I'd say probably.  But I
don't really know.  The only way to be sure is if it's explicit.

btw Jeffrey, kudos - BFBASIC looks pretty impressive (although I'm a bit
confused about it being GPL'ed but w/no source).  Have you considered
someday writing a BFBASIC compiler in BFBASIC and bootstrapping it?

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu Mar 27 04:25:54 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18yN4f-0008P1-00; Thu, 27 Mar 2003 04:25:01 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 27 Mar 2003 04:24:47 +0200 (EET)
Received: from pop.hevanet.com ([198.5.254.15])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18yN4L-0008OQ-00
	for lang@esoteric.sange.fi; Thu, 27 Mar 2003 04:24:41 +0200
Received: from [130.94.161.238] (130-94-161-238-dsl.hevanet.com [130.94.161.238])
	by pop.hevanet.com (8.11.6/8.11.6) with ESMTP id h2R2Obj85131
	for <lang@esoteric.sange.fi>; Wed, 26 Mar 2003 18:24:38 -0800 (PST)
Mime-Version: 1.0
X-Sender: cristofd@pop.hevanet.com
Message-Id: <a05111b00baa801386ee0@[130.94.161.238]>
In-Reply-To: <20030326150009.744096e2.cpressey@catseye.mb.ca>
References: <20030312022745.V88450-100000@lilly>
 <3E80AE97.19472.2D65EDB7@localhost>
 <a05111b00baa671365e6e@[130.94.161.238]>
 <20030326150009.744096e2.cpressey@catseye.mb.ca>
Date: Wed, 26 Mar 2003 18:24:37 -0800
To: lang@esoteric.sange.fi
From: "Daniel." <cristofd@hevanet.com>
Subject: [lang] Re: [bf] BFBASIC Compiler version 0.7
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
X-Spam-Score: -20.2 (--------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18yN4L-0008OQ-00*yyD9Oo94tLc*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cristofd@hevanet.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18yN4f-0008P1-00*RRoBNvX5yfM*

>  > "Yes, I squeezed another ridiculous 56 bytes out of the compiler. They
>>  have their price, though: The new compiler requires OS 2.0, operates
>>  on a byte array instead of longwords..."
>>
>>  So, bytes are official if anything is.
>
>So Brainfuck compilers that don't require [Amiga] OS 2.0 are officially
>broken, too?  :)
>
>That is to say - I don't think Urban intended his program to be a
>reference implementation.

The word "if" was important there. Also notice my explicit statement, 
a bit later, that cell size is up to the judgement of the implementor.

>In my mind, the Brainfuck language does not specify limits.  Limits are
>artefacts of implementation, accepted in order to achieve goals like
>having a bloody small compiler.
>
>The bare facts are that Brainfuck programs that assume that 255+1=0 will
>not run correctly on some implementations, and that Brainfuck programs
>that assume that 255+1=256 will not run correctly on some
>implementations.

I tried to state both facts. I guess I wasn't explicit enough.

>Same goes for 65535+1=0|65536 or any other modulus case.
>
>A really generally applicable (as opposed to minimal) implementation
>should handle all cases ("be liberal in what you accept.")

A maximally general implementation would do so--but there aren't any 
of those. I think every implementation I've seen so far breaks some 
brainfuck programs that make assumptions about cell size. I don't 
think this deserves censure.

>Along the same lines, a really portable Brainfuck program won't assume
>that 255+1 is even defined ("be conservative in what you produce.")

This is so easy to do that it should be nearly universal. It's the 
most common policy as it is (how often it's adhered to by accident, I 
can't say).

>It'd still break on implementations of Brainfuck where 16+1=0 (but I
>think those can safely be assumed to be very, VERY rare.)

And can't be reconciled with the specification that brainfuck i/o 
uses ASCII, without a lot of special pleading.

>That said, BF8 and BF16 (and BF32 and BF57 and whatever else) are viable
>dialects of Brainfuck, with *limitations specified at the language
>level*, and if it becomes more convenient to work in those terms, so be
>it.

What does "viable" mean here? Does saying BF57 is "viable" imply that 
there will be a community of programmers who continue to write BF 
programs that use numbers that won't fit in 32 bits, even after 
they're aware of the effects on running time?
Or from another angle: we can make some good guesses right now about 
which terms it will become more convenient to work in in the near 
future.

>Matthew Westcott also wrote:
>>  (And before anyone says anything - I realise
>>  that, strictly speaking, a system with a fixed 16/32/64-bit memory is
>>  no closer to being Turing-complete than one with a 256-byte array -
>>  but I think we can get away with it because that's exactly what real
>>  computers do...)
>
>Real computers are probably Turing-complete, though.
>
>My definition of Turing-complete:
>
>A system is Turing-complete if, given unlimited resources, it can solve
>any computable problem.

Little problem, though: "resources" is too general. Every part of a 
computer is a "resource", so you could argue that a hamburger is 
Turing-complete--just add one computer. Maybe specify "unlimited time 
and memory" or some such?

>The key word is "given."  It doesn't require that it already has
>unlimited resources.  Even a real computer with a 16-bit address space
>could be given multiple memory pages, or serial RAM, or some such.

Anyway.
-Daniel.
-- 
>>>++[<++++++++[<[<++>-]>>[>>]+>>+[-[->>+<<<[<[<<]<+>]>[>[>>]]]<[>
>>>[-<<[-]]+<[<+<]]>[<]+<<]<[>+<-]>>-]<cristofd@hevanet.com[-]>>]

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu Mar 27 06:20:25 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18yOru-000DtW-00; Thu, 27 Mar 2003 06:19:58 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 27 Mar 2003 06:19:44 +0200 (EET)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd3mo1so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18yOrb-000Dsz-00
	for lang@esoteric.sange.fi; Thu, 27 Mar 2003 06:19:39 +0200
Received: from pd6mr4so.prod.shaw.ca
 (pd6mr4so-qfe3.prod.shaw.ca [10.0.141.219]) by l-daemon
 (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HCE0045I3WF56@l-daemon> for lang@esoteric.sange.fi; Wed,
 26 Mar 2003 21:17:03 -0700 (MST)
Received: from pn2ml9so.prod.shaw.ca (pn2ml9so-qfe0.prod.shaw.ca [10.0.121.7])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HCE00ET63WFJL@l-daemon> for lang@esoteric.sange.fi; Wed,
 26 Mar 2003 21:17:03 -0700 (MST)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with SMTP id <0HCE00BBX3WFWQ@l-daemon> for lang@esoteric.sange.fi; Wed,
 26 Mar 2003 21:17:03 -0700 (MST)
Date: Wed, 26 Mar 2003 22:16:40 -0600
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: [bf] BFBASIC Compiler version 0.7
In-reply-to: <a05111b00baa801386ee0@[130.94.161.238]>
To: lang@esoteric.sange.fi
Message-id: <20030326221640.2b0b92dc.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
References: <20030312022745.V88450-100000@lilly>
 <3E80AE97.19472.2D65EDB7@localhost> <a05111b00baa671365e6e@[130.94.161.238]>
 <20030326150009.744096e2.cpressey@catseye.mb.ca>
 <a05111b00baa801386ee0@[130.94.161.238]>
X-Spam-Score: -26.7 (--------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18yOrb-000Dsz-00*QP3mdlqmYoo*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18yOru-000DtW-00*sy0spxsrK9o*

On Wed, 26 Mar 2003 18:24:37 -0800
"Daniel." <cristofd@hevanet.com> wrote:

> >  > "Yes, I squeezed another ridiculous 56 bytes out of the compiler.
> >  > They
> >>  have their price, though: The new compiler requires OS 2.0,
> >operates>  on a byte array instead of longwords..."
> >>
> >>  So, bytes are official if anything is.
> >
> >So Brainfuck compilers that don't require [Amiga] OS 2.0 are
> >officially broken, too?  :)
> >
> >That is to say - I don't think Urban intended his program to be a
> >reference implementation.
> 
> The word "if" was important there. Also notice my explicit statement, 
> a bit later, that cell size is up to the judgement of the implementor.

I'm not disagreeing with you, I just found your rationale a bit odd. 

Seems confusion around this issue arises periodically, and I just wanted
to add to it.

Besides, isn't ENSI the official standards body of this list?  And we
all know what that means:  MAXINT in Brainfuck is light green, and all
implementors who foolishly impose the limit of the smell of ammonia on
their Brainfuck cells will be mercilessly slaughtered when the Final
Judgement(tm) is handed down.

> >[...]
> >A really generally applicable (as opposed to minimal) implementation
> >should handle all cases ("be liberal in what you accept.")
> 
> A maximally general implementation would do so--but there aren't any 
> of those. I think every implementation I've seen so far breaks some 
> brainfuck programs that make assumptions about cell size. I don't 
> think this deserves censure.

I'm definately not trying to file a rebuke against the practice. 
Implementations should impose whatever limits they deem fit to
accomplish whatever it is that they're trying to accomplish.  If they
document them, all the better.

I do think there's room for a reasonably general implementation, though
(of course not maximally general, since that would mean it would have to
be able to interpret a hamburger as a valid Brainfuck program.)  I have
an implementation that uses bigints, it would be fairly easy to modify
it to simulate cells of any fixed size by having a configurable modulus.

> [...]
> >It'd still break on implementations of Brainfuck where 16+1=0 (but I
> >think those can safely be assumed to be very, VERY rare.)
> 
> And can't be reconciled with the specification that brainfuck i/o 
> uses ASCII, without a lot of special pleading.

True.  The reasonable conclusion would be that 7 bits is the practical
minimum cell size... meaning a really, *really* portable Brainfuck
program wouldn't make any assumptions about what 127+1 equals.

> >That said, BF8 and BF16 (and BF32 and BF57 and whatever else) are
> >viable dialects of Brainfuck, with *limitations specified at the
> >language level*, and if it becomes more convenient to work in those
> >terms, so be it.
> 
> What does "viable" mean here?

That you could define a language to the effect.

> Does saying BF57 is "viable" imply that 
> there will be a community of programmers who continue to write BF 
> programs that use numbers that won't fit in 32 bits, even after 
> they're aware of the effects on running time?

No, only that there could be.

> Or from another angle: we can make some good guesses right now about 
> which terms it will become more convenient to work in in the near 
> future.

Yeah, but what's so interesting about multiples of 8?  Multiples of 19
strike me as much more interesting.  (57 = 19 x 3)

> [...]
> >My definition of Turing-complete:
> >
> >A system is Turing-complete if, given unlimited resources, it can
> >solve any computable problem.
> 
> Little problem, though: "resources" is too general. Every part of a 
> computer is a "resource", so you could argue that a hamburger is 
> Turing-complete--just add one computer. Maybe specify "unlimited time 
> and memory" or some such?

OK, that *was* a little vague.  Resources in this case are, as far as I
can tell, time and storage.

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu Mar 27 06:26:56 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18yOyQ-000EGk-00; Thu, 27 Mar 2003 06:26:42 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 27 Mar 2003 06:26:28 +0200 (EET)
Received: from lilly.csoft.net ([63.111.22.101] helo=mail102.csoft.net)
	by oiva.sange.fi with smtp (Exim 4.12)
	id 18yOy6-000EGC-00
	for lang@esoteric.sange.fi; Thu, 27 Mar 2003 06:26:23 +0200
Received: (qmail 23599 invoked by uid 2567); 27 Mar 2003 04:32:32 -0000
Received: from localhost (sendmail-bs@127.0.0.1)
  by localhost with SMTP; 27 Mar 2003 04:32:32 -0000
Date: Wed, 26 Mar 2003 23:32:32 -0500 (EST)
From: Jeffry Johnston <jeffryj@lilly.csoft.net>
X-X-Sender: jeffryj@lilly
To: lang@esoteric.sange.fi
Subject: [lang] Re: [bf] BFBASIC Compiler version 0.7
In-Reply-To: <20030326150009.744096e2.cpressey@catseye.mb.ca>
Message-ID: <20030326222157.Q11704-100000@lilly>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-Spam-Score: -20.1 (--------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18yOy6-000EGC-00*RTqDlaY6oAs*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: jeffryj@lilly.csoft.net
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18yOyQ-000EGk-00*kKiI1NsN3p6*



On Wed, 26 Mar 2003, Chris Pressey wrote:

> btw Jeffrey, kudos - BFBASIC looks pretty impressive

Thanks!  I know it's been a while since I mentioned it to ya in the bf
chatroom.

> (although I'm a bit
> confused about it being GPL'ed but w/no source).

I am too actually.  I seem to be bad about forgetting to put the source
in.. forgot it in the first version too.. it's in there now.  Thanks for
bringing it to my attention.  I've also updated bfi4 to fix a small bug I
discovered relating to STDAUX / STDIN when an invalid filename was given.

> Have you considered
> someday writing a BFBASIC compiler in BFBASIC and bootstrapping it?

I've considered it, and was starting to write it with that in mind, but
reconsidered, and now just about every line of code is using some sort of
non-supported command, so it'd be a major effort.

Jeff

>
> -Chris
>
> --
> To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
> unsubscribe lang	[if you receive these messages via lang]
> unsubscribe misc	[if you receive these messages via misc]
>
>


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu Mar 27 13:59:59 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18yW27-000B3n-00; Thu, 27 Mar 2003 13:58:59 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 27 Mar 2003 13:58:45 +0200 (EET)
Received: from pop.hevanet.com ([198.5.254.15])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18yW1n-000B3C-00
	for lang@esoteric.sange.fi; Thu, 27 Mar 2003 13:58:39 +0200
Received: from [130.94.161.238] (130-94-161-238-dsl.hevanet.com [130.94.161.238])
	by pop.hevanet.com (8.11.6/8.11.6) with ESMTP id h2RBwZj05849
	for <lang@esoteric.sange.fi>; Thu, 27 Mar 2003 03:58:36 -0800 (PST)
Mime-Version: 1.0
X-Sender: cristofd@pop.hevanet.com
Message-Id: <a05111b02baa850740c76@[130.94.161.238]>
In-Reply-To: <20030326221640.2b0b92dc.cpressey@catseye.mb.ca>
References: <20030312022745.V88450-100000@lilly>
 <3E80AE97.19472.2D65EDB7@localhost>
 <a05111b00baa671365e6e@[130.94.161.238]>
 <20030326150009.744096e2.cpressey@catseye.mb.ca>
 <a05111b00baa801386ee0@[130.94.161.238]>
 <20030326221640.2b0b92dc.cpressey@catseye.mb.ca>
Date: Thu, 27 Mar 2003 03:58:36 -0800
To: lang@esoteric.sange.fi
From: "Daniel." <cristofd@hevanet.com>
Subject: [lang] Re: [bf] BFBASIC Compiler version 0.7
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
X-Spam-Score: -20.2 (--------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18yW1n-000B3C-00*Swz7SDqr/EI*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cristofd@hevanet.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18yW27-000B3n-00*qwfvRMMoB92*

Okay, I think this has mostly been cleared up.

>I do think there's room for a reasonably general implementation, though
>(of course not maximally general, since that would mean it would have to
>be able to interpret a hamburger as a valid Brainfuck program.)  I have
>an implementation that uses bigints, it would be fairly easy to modify
>it to simulate cells of any fixed size by having a configurable modulus.

Let me make a stronger statement then: I haven't seen an 
implementation that accepts all dialects of brainfuck that have three 
or more adherents, let alone all the clearly articulable one-person 
variants. I'm not saying it would be hard to do, or that it wouldn't 
be useful, I just don't know that anyone's bothered.

>  > Or from another angle: we can make some good guesses right now about
>>  which terms it will become more convenient to work in in the near
>>  future.
>
>Yeah, but what's so interesting about multiples of 8?  Multiples of 19
>strike me as much more interesting.  (57 = 19 x 3)

Yeah, but you're CLEARLY MAD. (Has anyone used that as a language 
name yet, by the way?)
Anyway, I wasn't thinking about the prime factorization but about the 
size: in a straightforward brainfuck implementation, creating and 
using numbers in the billions takes billions of steps; with an 
optimizing implementation, this can be obviated in the most simple 
and idiomatic uses, but not in the general case; so brainfuck 
programs that need cells to be larger than 32 bits are likely to be 
so slow that people won't be willing to wait for the output anyway. 
This is as applicable to BF64 or BF128 as to BF57. I can think of 
some simple programs that would do okay with an optimizing 
implementation. But my thought is that to have BFBASIC and related 
projects depend on an optimizing implementation with larger cells 
than usual would be a serious limitation, even if the code could all 
be made in such a way that an optimizing implementation could bring 
it up to reasonable speed, which I doubt unless that implementation 
were specifically redesigned to help BFBASIC out. Dunno.

-Daniel.
-- 
>>>++[<++++++++[<[<++>-]>>[>>]+>>+[-[->>+<<<[<[<<]<+>]>[>[>>]]]<[>
>>>[-<<[-]]+<[<+<]]>[<]+<<]<[>+<-]>>-]<cristofd@hevanet.com[-]>>]

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu Mar 27 17:40:03 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18yZSM-000MDr-00; Thu, 27 Mar 2003 17:38:19 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 27 Mar 2003 17:38:05 +0200 (EET)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd3mo3so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18yZS3-000MDG-00
	for lang@esoteric.sange.fi; Thu, 27 Mar 2003 17:37:59 +0200
Received: from pd4mr2so.prod.shaw.ca
 (pd4mr2so-qfe3.prod.shaw.ca [10.0.141.213]) by l-daemon
 (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HCE00912ZAO25@l-daemon> for lang@esoteric.sange.fi; Thu,
 27 Mar 2003 08:35:12 -0700 (MST)
Received: from pn2ml5so.prod.shaw.ca
 (pn2ml5so-qfe0.prod.shaw.ca [10.0.121.149]) by l-daemon
 (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HCE00BAMZANE7@l-daemon> for lang@esoteric.sange.fi; Thu,
 27 Mar 2003 08:35:11 -0700 (MST)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with SMTP id <0HCE004KYZANHC@l-daemon> for lang@esoteric.sange.fi; Thu,
 27 Mar 2003 08:35:11 -0700 (MST)
Date: Thu, 27 Mar 2003 09:34:50 -0600
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: [bf] BFBASIC Compiler version 0.7
In-reply-to: <20030326222157.Q11704-100000@lilly>
To: lang@esoteric.sange.fi
Message-id: <20030327093450.4a4c8b3e.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
References: <20030326150009.744096e2.cpressey@catseye.mb.ca>
 <20030326222157.Q11704-100000@lilly>
X-Spam-Score: -20.2 (--------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18yZS3-000MDG-00*Sr2gvHmSW1w*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18yZSM-000MDr-00*sOQfLyJAwfM*

On Wed, 26 Mar 2003 23:32:32 -0500 (EST)
Jeffry Johnston <jeffryj@lilly.csoft.net> wrote:

> > Have you considered
> > someday writing a BFBASIC compiler in BFBASIC and bootstrapping it?
> 
> I've considered it, and was starting to write it with that in mind,
> but reconsidered, and now just about every line of code is using some
> sort of non-supported command, so it'd be a major effort.
> 
> Jeff

Oh, right... I forgot about the chatroom... I probably asked about
bootstrapping back then too.  And yeah, looking at the source, whew, it
would probably take one or more intermediate steps to bootstrap it
completely.  BFBASIC is closer to Business BASIC than QBASIC.  (Except
BFBASIC isn't evil (well, not in *that* way anyway.))

But still, we can dream, and probably should :)

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu Mar 27 17:47:28 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18yZb4-000Mha-00; Thu, 27 Mar 2003 17:47:18 +0200
Received: with LISTAR (v0.129a; list lang); Thu, 27 Mar 2003 17:47:04 +0200 (EET)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd4mo1so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18yZal-000Mh0-00
	for lang@esoteric.sange.fi; Thu, 27 Mar 2003 17:46:59 +0200
Received: from pd6mr3so.prod.shaw.ca
 (pd6mr3so-qfe3.prod.shaw.ca [10.0.141.218]) by l-daemon
 (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HCE00LBIZTINZ@l-daemon> for lang@esoteric.sange.fi; Thu,
 27 Mar 2003 08:46:30 -0700 (MST)
Received: from pn2ml9so.prod.shaw.ca (pn2ml9so-qfe0.prod.shaw.ca [10.0.121.7])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HCE00JBPZTI2I@l-daemon> for lang@esoteric.sange.fi; Thu,
 27 Mar 2003 08:46:30 -0700 (MST)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with SMTP id <0HCE00M1EZTHE6@l-daemon> for lang@esoteric.sange.fi; Thu,
 27 Mar 2003 08:46:29 -0700 (MST)
Date: Thu, 27 Mar 2003 09:46:08 -0600
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: [bf] BFBASIC Compiler version 0.7
In-reply-to: <a05111b02baa850740c76@[130.94.161.238]>
To: lang@esoteric.sange.fi
Message-id: <20030327094608.6f2c9e39.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
References: <20030312022745.V88450-100000@lilly>
 <3E80AE97.19472.2D65EDB7@localhost> <a05111b00baa671365e6e@[130.94.161.238]>
 <20030326150009.744096e2.cpressey@catseye.mb.ca>
 <a05111b00baa801386ee0@[130.94.161.238]>
 <20030326221640.2b0b92dc.cpressey@catseye.mb.ca>
 <a05111b02baa850740c76@[130.94.161.238]>
X-Spam-Score: -26.7 (--------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18yZal-000Mh0-00*7OT1bI/YvEA*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18yZb4-000Mha-00*LeangPvtUyI*

On Thu, 27 Mar 2003 03:58:36 -0800
"Daniel." <cristofd@hevanet.com> wrote:

> Okay, I think this has mostly been cleared up.
> 
> >I do think there's room for a reasonably general implementation,
> >though(of course not maximally general, since that would mean it
> >would have to be able to interpret a hamburger as a valid Brainfuck
> >program.)  I have an implementation that uses bigints, it would be
> >fairly easy to modify it to simulate cells of any fixed size by
> >having a configurable modulus.
> 
> Let me make a stronger statement then: I haven't seen an 
> implementation that accepts all dialects of brainfuck that have three 
> or more adherents, let alone all the clearly articulable one-person 
> variants. I'm not saying it would be hard to do, or that it wouldn't 
> be useful, I just don't know that anyone's bothered.

Hmmm... well I'm not thinking about all the minor-but-significant
variations on Brainfuck like Doublefuck and so forth.  That would be
quite a job, mostly in cataloguing.  I was thinking of just the ones
that differ in terms of the limits they impose on the tape and cell
size.  Actually, I was thinking of something that could be used as a
reference implementation, with Urban's blessing.

> >  > Or from another angle: we can make some good guesses right now
> >  > about
> >>  which terms it will become more convenient to work in in the near
> >>  future.
> >
> >Yeah, but what's so interesting about multiples of 8?  Multiples of
> >19 strike me as much more interesting.  (57 = 19 x 3)
> 
> Yeah, but you're CLEARLY MAD.

Ah, those were the good old days.  Sadly, I'm only MOSTLY MAD nowadays.

> (Has anyone used that as a language name yet, by the way?)

Not that I know of.

I don't think I have the energy to design one that would live up to it,
anyway.  I have a pretty good idea what my next esolang will be about,
and it definately won't be impressive enough to warrant that name.

> Anyway, I wasn't thinking about the prime factorization but about the 
> size: in a straightforward brainfuck implementation, creating and 
> using numbers in the billions takes billions of steps; with an 
> optimizing implementation, this can be obviated in the most simple 
> and idiomatic uses, but not in the general case; so brainfuck 
> programs that need cells to be larger than 32 bits are likely to be 
> so slow that people won't be willing to wait for the output anyway. 

All the better to bring pressure to bear on the manufacturers to push
our machines into the terahertz range!

> This is as applicable to BF64 or BF128 as to BF57. I can think of 
> some simple programs that would do okay with an optimizing 
> implementation. But my thought is that to have BFBASIC and related 
> projects depend on an optimizing implementation with larger cells 
> than usual would be a serious limitation, even if the code could all 
> be made in such a way that an optimizing implementation could bring 
> it up to reasonable speed, which I doubt unless that implementation 
> were specifically redesigned to help BFBASIC out. Dunno.
> 
> -Daniel.

I dunno either.  I do know that I save my worrying about resources (time
and storage) for my non-esoteric work.  So I'm not fretting about speed
here.

Of course it would be nice for BFBASIC to generate reasonably portable
Brainfuck programs, i.e. BF8 programs.

On the other hand I wouldn't mind at all if it generated BF16 programs
in order to more easily have >256 element arrays etc.  Especially if
there were a BF16->BF8 translator available.

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Fri Mar 28 13:23:50 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18yru3-0002bj-00; Fri, 28 Mar 2003 13:20:07 +0200
Received: with LISTAR (v0.129a; list lang); Fri, 28 Mar 2003 13:19:53 +0200 (EET)
Received: from pop.hevanet.com ([198.5.254.15])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18yrtj-0002b0-00
	for lang@esoteric.sange.fi; Fri, 28 Mar 2003 13:19:47 +0200
Received: from [130.94.161.238] (130-94-161-238-dsl.hevanet.com [130.94.161.238])
	by pop.hevanet.com (8.11.6/8.11.6) with ESMTP id h2SBJgj76171
	for <lang@esoteric.sange.fi>; Fri, 28 Mar 2003 03:19:43 -0800 (PST)
Mime-Version: 1.0
X-Sender: cristofd@pop.hevanet.com
Message-Id: <a05111b00baa9d91fd870@[130.94.161.238]>
In-Reply-To: <20030327094608.6f2c9e39.cpressey@catseye.mb.ca>
References: <20030312022745.V88450-100000@lilly>
 <3E80AE97.19472.2D65EDB7@localhost>
 <a05111b00baa671365e6e@[130.94.161.238]>
 <20030326150009.744096e2.cpressey@catseye.mb.ca>
 <a05111b00baa801386ee0@[130.94.161.238]>
 <20030326221640.2b0b92dc.cpressey@catseye.mb.ca>
 <a05111b02baa850740c76@[130.94.161.238]>
 <20030327094608.6f2c9e39.cpressey@catseye.mb.ca>
Date: Fri, 28 Mar 2003 03:19:43 -0800
To: lang@esoteric.sange.fi
From: "Daniel." <cristofd@hevanet.com>
Subject: [lang] Re: [bf] BFBASIC Compiler version 0.7
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
X-Spam-Score: -20.2 (--------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18yrtj-0002b0-00*5BySa3QPQtE*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cristofd@hevanet.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18yru3-0002bj-00*W7HBi.rwVaM*

>  > Let me make a stronger statement then: I haven't seen an
>>  implementation that accepts all dialects of brainfuck that have three
>>  or more adherents, let alone all the clearly articulable one-person
>>  variants. I'm not saying it would be hard to do, or that it wouldn't
>>  be useful, I just don't know that anyone's bothered.
>
>Hmmm... well I'm not thinking about all the minor-but-significant
>variations on Brainfuck like Doublefuck and so forth.  That would be
>quite a job, mostly in cataloguing.  I was thinking of just the ones
>that differ in terms of the limits they impose on the tape and cell
>size.  Actually, I was thinking of something that could be used as a
>reference implementation, with Urban's blessing.

Hm. This would also require resolving the newline issue and the EOF 
issue, correct?

>  > Yeah, but you're CLEARLY MAD.
>
>Ah, those were the good old days.  Sadly, I'm only MOSTLY MAD nowadays.

Ah. Very sorry to fear that.

-Daniel.
-- 
        ()  ASCII ribbon campaign      ()    Hopeless ribbon campaign
        /\    against HTML mail        /\  against gratuitous bloodshed

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Mon Mar 31 07:44:14 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18zr8c-000AuU-00; Mon, 31 Mar 2003 07:43:14 +0300
Received: with LISTAR (v0.129a; list lang); Mon, 31 Mar 2003 07:43:00 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd5mo2so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 18zr8H-000Atq-00
	for lang@esoteric.sange.fi; Mon, 31 Mar 2003 07:42:53 +0300
Received: from pd6mr4so.prod.shaw.ca
 (pd6mr4so-qfe3.prod.shaw.ca [10.0.141.219]) by l-daemon
 (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HCL00KJBJREWD@l-daemon> for lang@esoteric.sange.fi; Sun,
 30 Mar 2003 21:42:50 -0700 (MST)
Received: from pn2ml6so.prod.shaw.ca
 (pn2ml6so-qfe0.prod.shaw.ca [10.0.121.150]) by l-daemon
 (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HCL00KP1JREH5@l-daemon> for lang@esoteric.sange.fi; Sun,
 30 Mar 2003 21:42:50 -0700 (MST)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with SMTP id <0HCL00COLJREJY@l-daemon> for lang@esoteric.sange.fi; Sun,
 30 Mar 2003 21:42:50 -0700 (MST)
Date: Sun, 30 Mar 2003 22:42:36 -0600
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: [bf] BFBASIC Compiler version 0.7
In-reply-to: <a05111b00baa9d91fd870@[130.94.161.238]>
To: lang@esoteric.sange.fi
Message-id: <20030330224236.72c859c7.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
References: <20030312022745.V88450-100000@lilly>
 <3E80AE97.19472.2D65EDB7@localhost> <a05111b00baa671365e6e@[130.94.161.238]>
 <20030326150009.744096e2.cpressey@catseye.mb.ca>
 <a05111b00baa801386ee0@[130.94.161.238]>
 <20030326221640.2b0b92dc.cpressey@catseye.mb.ca>
 <a05111b02baa850740c76@[130.94.161.238]>
 <20030327094608.6f2c9e39.cpressey@catseye.mb.ca>
 <a05111b00baa9d91fd870@[130.94.161.238]>
X-Spam-Score: -26.1 (--------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18zr8H-000Atq-00*9mD89pu8zZY*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *18zr8c-000AuU-00*0Hv30slHMbA*

On Fri, 28 Mar 2003 03:19:43 -0800
"Daniel." <cristofd@hevanet.com> wrote:

> >[Brainfuck]  I was thinking of just the ones
> >that differ in terms of the limits they impose on the tape and cell
> >size.  Actually, I was thinking of something that could be used as a
> >reference implementation, with Urban's blessing.
> 
> Hm. This would also require resolving the newline issue and the EOF 
> issue, correct?

Yes.  (Well, maybe not 'resolving', but at least 'handling'.)

Although these are arguably ESO OS issues.

But it couldn't hurt to have a starting point for that anyway.

As for a name, I'm thinking, 'PIBFI' -
Platonic Ideal BrainFuck Interpreter.

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu Apr 03 06:34:32 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 190vTi-000MAE-00; Thu, 03 Apr 2003 06:33:26 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 03 Apr 2003 06:33:13 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd4mo2so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 190vTM-000M9W-00
	for lang@esoteric.sange.fi; Thu, 03 Apr 2003 06:33:04 +0300
Received: from pd3mr1so.prod.shaw.ca (pd3mr1so-ser.prod.shaw.ca [10.0.141.177])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HCR002PP0IZX7@l-daemon> for lang@esoteric.sange.fi; Wed,
 02 Apr 2003 20:32:59 -0700 (MST)
Received: from pn2ml9so.prod.shaw.ca (pn2ml9so-qfe0.prod.shaw.ca [10.0.121.7])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HCR0089F0IZRV@l-daemon> for lang@esoteric.sange.fi; Wed,
 02 Apr 2003 20:32:59 -0700 (MST)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with SMTP id <0HCR00HLB0IZ7V@l-daemon> for lang@esoteric.sange.fi; Wed,
 02 Apr 2003 20:32:59 -0700 (MST)
Date: Wed, 02 Apr 2003 21:32:51 -0600
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: pibfi (was Re: [bf] BFBASIC Compiler version 0.7)
In-reply-to: <20030330224236.72c859c7.cpressey@catseye.mb.ca>
To: lang@esoteric.sange.fi
Message-id: <20030402213251.53412a9b.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
References: <20030312022745.V88450-100000@lilly>
 <3E80AE97.19472.2D65EDB7@localhost> <a05111b00baa671365e6e@[130.94.161.238]>
 <20030326150009.744096e2.cpressey@catseye.mb.ca>
 <a05111b00baa801386ee0@[130.94.161.238]>
 <20030326221640.2b0b92dc.cpressey@catseye.mb.ca>
 <a05111b02baa850740c76@[130.94.161.238]>
 <20030327094608.6f2c9e39.cpressey@catseye.mb.ca>
 <a05111b00baa9d91fd870@[130.94.161.238]>
 <20030330224236.72c859c7.cpressey@catseye.mb.ca>
X-Spam-Score: -22.9 (----------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *190vTM-000M9W-00*IwnfuIDKsxc*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *190vTi-000MAE-00*SH7wW2m97ts*

On Sun, 30 Mar 2003 22:42:36 -0600
Chris Pressey <cpressey@catseye.mb.ca> wrote:

> As for a name, I'm thinking, 'PIBFI' -
> Platonic Ideal BrainFuck Interpreter.

OK, I made a go at it:

  http://www.catseye.mb.ca/projects/pibfi-+

Some examples of the options it accepts follow.

  pedantically strict:
    -maxcell 127
  will abort with an error if any cell exceeds 127.

  BF8:
    -maxcell 255 -wrapcell
  behaves as though cells are 8 bits in size and that 255+1=0.

  BF16:
    -maxcell 65535 -wrapcell
  same as BF8 except w/16 bit cells.

  Platonic:
    (default)
  no upper limit imposed on tape length or cell capacity.

  Super Duper Platonic:
    -mincell infinity -mintape infinity
  no lower limit imposed on tape length or cell capacity, either.

  finite tape:
    -maxtape 100 -mintape -100 -wraptape
  behaves as though the tape is a closed loop extending 100 cells
  in either direction.

  EOLs:
    -bfeol #13 -oseol #13#10
  runs Brainfuck programs written for Mac, on MS-DOS
    -bfeol #13#10 -oseol #10
  runs Brainfuck programs written for MS-DOS, on Unix
    -bfeol #255#251#254#250 -oseol ACTIVATE_THE_PLATENS_STEPPER_MOTOR
  runs Brainf*ck programs written for some ungodly operating system
  where the end-of-line marker is a series of high ASCII codes, on
  some other ungodly operating system where the end-of-line marker is
  the ASCII text "ACTIVATE_THE_PLATENS_STEPPER_MOTOR"

  EOFs:
    -eof halt
  when the end of input is reached, ',' stops the program
    -eof 77
  when the end of input is reached, ',' always returns ASCII char 'M'

There's still lots more to do (for example I haven't handled the case of
-mincell -3000 -maxcell -2000, or the case of -mintape 2000 -maxtape
3000, because of the assumption that the tape, and cells, begin at 0.)

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu Apr 03 14:29:31 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 1912su-000KES-00; Thu, 03 Apr 2003 14:27:56 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 03 Apr 2003 14:27:42 +0300 (EEST)
Received: from pop.hevanet.com ([198.5.254.15])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 1912sZ-000KDd-00
	for lang@esoteric.sange.fi; Thu, 03 Apr 2003 14:27:35 +0300
Received: from [130.94.161.238] (130-94-161-238-dsl.hevanet.com [130.94.161.238])
	by pop.hevanet.com (8.11.6/8.11.6) with ESMTP id h33BRTY00120
	for <lang@esoteric.sange.fi>; Thu, 3 Apr 2003 03:27:30 -0800 (PST)
Mime-Version: 1.0
X-Sender: cristofd@pop.hevanet.com
Message-Id: <a05111b05bab18bcc0e66@[130.94.161.238]>
In-Reply-To: <20030402213251.53412a9b.cpressey@catseye.mb.ca>
References: <20030312022745.V88450-100000@lilly>
 <3E80AE97.19472.2D65EDB7@localhost>
 <a05111b00baa671365e6e@[130.94.161.238]>
 <20030326150009.744096e2.cpressey@catseye.mb.ca>
 <a05111b00baa801386ee0@[130.94.161.238]>
 <20030326221640.2b0b92dc.cpressey@catseye.mb.ca>
 <a05111b02baa850740c76@[130.94.161.238]>
 <20030327094608.6f2c9e39.cpressey@catseye.mb.ca>
 <a05111b00baa9d91fd870@[130.94.161.238]>
 <20030330224236.72c859c7.cpressey@catseye.mb.ca>
 <20030402213251.53412a9b.cpressey@catseye.mb.ca>
Date: Thu, 3 Apr 2003 03:27:29 -0800
To: lang@esoteric.sange.fi
From: "Daniel." <cristofd@hevanet.com>
Subject: [lang] Re: pibfi (was Re: [bf] BFBASIC Compiler version 0.7)
Content-Type: text/plain; charset="iso-8859-1" ; format="flowed"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -10.2 (----------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *1912sZ-000KDd-00*2vLixmBy2Bg*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cristofd@hevanet.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *1912su-000KES-00*r0G/hjHlEME*

>  > As for a name, I'm thinking, 'PIBFI' -
>>  Platonic Ideal BrainFuck Interpreter.
>
>OK, I made a go at it:
>
>   http://www.catseye.mb.ca/projects/pibfi-+

This is looking very nice so far. Two more things need adding, though:

-conversion of EOL on input;

-an EOF option for "when the end of input is reached, ',' is a NOP." 
This is listed as a viable option on Brian Raiter's page, and has 
three advantages.

=46irst and perhaps most important, it reconciles the claims of 
EOF->(-1) and EOF->0, in that programs written for either one can be 
made to work with EOF->NOP as well, simply by setting the cell to 0 
or -1 before doing the , command. In fact, most programs that assume 
EOF->0 will also work under EOF->NOP with no change at all. And on 
the other side, EOF->NOP allows EOF to be distinguished from any byte 
value, by setting the cell to -1 first (and using a sixteen-bit 
implementation, naturally).
(Raiter mentions that EOF is "probably one of the most problematic 
areas for the programmer wishing to achieve portability." But any 
programmer wishing to achieve portability can get two of the three 
options, anyway, and EOF->NOP will be one of the two.)

Second, it's the most natural behavior for the tiny low-level 
implementations brainfuck was designed for, since they generally use 
system calls for i/o. In fact, Urban M=FCller's three-line interpreter 
in C uses system calls too.

Third, for the input command to do nothing when there is no more 
input seems like the best fit for the simplicity of the language, and 
involves the least extension to the English version of the semantics 
(though not the C version).

Anyway, good work.
-Daniel.
-- 
>>>++[<++++++++[<[<++>-]>>[>>]+>>+[-[->>+<<<[<[<<]<+>]>[>[>>]]]<[>>>>[-<<[-]=
]
+<[<+<]]>[<]+<<]<[>+<-]>>-]<.[-]>>]http://www.hevanet.com/cristofd/brainfuck=
/

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu Apr 03 23:33:51 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 191BN9-000LW5-00; Thu, 03 Apr 2003 23:31:43 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 03 Apr 2003 23:31:29 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd6mo2so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 191BMX-000LUb-00
	for lang@esoteric.sange.fi; Thu, 03 Apr 2003 23:31:14 +0300
Received: from pd4mr1so.prod.shaw.ca
 (pd4mr1so-qfe3.prod.shaw.ca [10.0.141.212]) by l-daemon
 (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HCS0098TBNNSK@l-daemon> for lang@esoteric.sange.fi; Thu,
 03 Apr 2003 13:30:59 -0700 (MST)
Received: from pn2ml2so.prod.shaw.ca
 (pn2ml2so-qfe0.prod.shaw.ca [10.0.121.146]) by l-daemon
 (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HCS00JFSBNNJ6@l-daemon> for lang@esoteric.sange.fi; Thu,
 03 Apr 2003 13:30:59 -0700 (MST)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with SMTP id <0HCS00C0IBNMD2@l-daemon> for lang@esoteric.sange.fi; Thu,
 03 Apr 2003 13:30:59 -0700 (MST)
Date: Thu, 03 Apr 2003 14:30:53 -0600
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: pibfi (was Re: [bf] BFBASIC Compiler version 0.7)
In-reply-to: <a05111b05bab18bcc0e66@[130.94.161.238]>
To: lang@esoteric.sange.fi
Message-id: <20030403143053.136f0edc.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
References: <20030312022745.V88450-100000@lilly>
 <3E80AE97.19472.2D65EDB7@localhost> <a05111b00baa671365e6e@[130.94.161.238]>
 <20030326150009.744096e2.cpressey@catseye.mb.ca>
 <a05111b00baa801386ee0@[130.94.161.238]>
 <20030326221640.2b0b92dc.cpressey@catseye.mb.ca>
 <a05111b02baa850740c76@[130.94.161.238]>
 <20030327094608.6f2c9e39.cpressey@catseye.mb.ca>
 <a05111b00baa9d91fd870@[130.94.161.238]>
 <20030330224236.72c859c7.cpressey@catseye.mb.ca>
 <20030402213251.53412a9b.cpressey@catseye.mb.ca>
 <a05111b05bab18bcc0e66@[130.94.161.238]>
X-Spam-Score: -26.7 (--------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *191BMX-000LUb-00*oLvfI6ROhD.*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *191BN9-000LW5-00*jQ4003mxi/E*

On Thu, 3 Apr 2003 03:27:29 -0800
"Daniel." <cristofd@hevanet.com> wrote:

> >   http://www.catseye.mb.ca/projects/pibfi-+
> 
> This is looking very nice so far. Two more things need adding, though:
> 
> -conversion of EOL on input;

OK, this is in 2003.0403 (not well tested yet, uses the same -bfeol and
-oseol settings, but translates the other way around on input.)

> -an EOF option for "when the end of input is reached, ',' is a NOP." 

OK, "-eof nop" has been added too (again, not terribly well tested.)

Also, the options -maxout, -minout, -wrapout have been added, to impose
limits (or not) on output.

(As a consequence of the assumptions of Erlang's io module, trying to
output a value > 255 or < 0 wouldn't work anyway, but now it fails or
wraps in the same way as the cells & tape.  Also, now, if you do output
a non-ASCII-ish value, it shows up on the output as "<<#charnum>>")

Also, I took out the gratuitous ## escape.  #35 works just as well and
makes more sense.

> Anyway, good work.
> -Daniel.

Thanks.

Still lots to do (-maxin, -minin, -wrapin immediately suggest themselves
of course, and it would also be good to assert -mintape/cell <= 0 <=
-maxtape/cell)

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Fri Apr 04 04:23:59 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 191Fv7-0009wC-00; Fri, 04 Apr 2003 04:23:05 +0300
Received: with LISTAR (v0.129a; list lang); Fri, 04 Apr 2003 04:22:52 +0300 (EEST)
Received: from lilly.csoft.net ([63.111.22.101] helo=mail102.csoft.net)
	by oiva.sange.fi with smtp (Exim 4.12)
	id 191Fun-0009vb-00
	for lang@esoteric.sange.fi; Fri, 04 Apr 2003 04:22:46 +0300
Received: (qmail 26554 invoked by uid 2567); 4 Apr 2003 01:30:30 -0000
Received: from localhost (sendmail-bs@127.0.0.1)
  by localhost with SMTP; 4 Apr 2003 01:30:30 -0000
Date: Thu, 3 Apr 2003 20:30:30 -0500 (EST)
From: Jeffry Johnston <jeffryj@lilly.csoft.net>
X-X-Sender: jeffryj@lilly
To: lang@esoteric.sange.fi
Subject: [lang] Re: pibfi (was Re: [bf] BFBASIC Compiler version 0.7)
In-Reply-To: <20030402213251.53412a9b.cpressey@catseye.mb.ca>
Message-ID: <20030403201838.C23632-100000@lilly>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-Spam-Score: -19.5 (-------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *191Fun-0009vb-00*ndXd156EGFc*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: jeffryj@lilly.csoft.net
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *191Fv7-0009wC-00*BQgOHMYEihU*

On Wed, 2 Apr 2003, Chris Pressey wrote:

> On Sun, 30 Mar 2003 22:42:36 -0600
> Chris Pressey <cpressey@catseye.mb.ca> wrote:
>
> > As for a name, I'm thinking, 'PIBFI' -
> > Platonic Ideal BrainFuck Interpreter.
>
> OK, I made a go at it:
>
>   http://www.catseye.mb.ca/projects/pibfi-+
>

Haven't downloaded it yet, but this is very cool.  I can see it becoming
the standard, it allows for almost everything :)

Wow, even has Return/Enter translations.. this is nifty.

Jeff


> Some examples of the options it accepts follow.
>
>   pedantically strict:
>     -maxcell 127
>   will abort with an error if any cell exceeds 127.
>
>   BF8:
>     -maxcell 255 -wrapcell
>   behaves as though cells are 8 bits in size and that 255+1=0.
>
>   BF16:
>     -maxcell 65535 -wrapcell
>   same as BF8 except w/16 bit cells.
>
>   Platonic:
>     (default)
>   no upper limit imposed on tape length or cell capacity.
>
>   Super Duper Platonic:
>     -mincell infinity -mintape infinity
>   no lower limit imposed on tape length or cell capacity, either.
>
>   finite tape:
>     -maxtape 100 -mintape -100 -wraptape
>   behaves as though the tape is a closed loop extending 100 cells
>   in either direction.
>
>   EOLs:
>     -bfeol #13 -oseol #13#10
>   runs Brainfuck programs written for Mac, on MS-DOS
>     -bfeol #13#10 -oseol #10
>   runs Brainfuck programs written for MS-DOS, on Unix
>     -bfeol #255#251#254#250 -oseol ACTIVATE_THE_PLATENS_STEPPER_MOTOR
>   runs Brainf*ck programs written for some ungodly operating system
>   where the end-of-line marker is a series of high ASCII codes, on
>   some other ungodly operating system where the end-of-line marker is
>   the ASCII text "ACTIVATE_THE_PLATENS_STEPPER_MOTOR"
>
>   EOFs:
>     -eof halt
>   when the end of input is reached, ',' stops the program
>     -eof 77
>   when the end of input is reached, ',' always returns ASCII char 'M'
>
> There's still lots more to do (for example I haven't handled the case of
> -mincell -3000 -maxcell -2000, or the case of -mintape 2000 -maxtape
> 3000, because of the assumption that the tape, and cells, begin at 0.)
>
> -Chris
>
> --
> To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
> unsubscribe lang	[if you receive these messages via lang]
> unsubscribe misc	[if you receive these messages via misc]
>
>


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Sat Apr 05 23:50:12 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 191ub1-0008jx-00; Sat, 05 Apr 2003 23:49:03 +0300
Received: with LISTAR (v0.129a; list lang); Sat, 05 Apr 2003 23:48:49 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd4mo2so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 191uad-0008j4-00
	for lang@esoteric.sange.fi; Sat, 05 Apr 2003 23:48:39 +0300
Received: from pd2mr4so.prod.shaw.ca (pd2mr4so-ser.prod.shaw.ca [10.0.141.107])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HCW0031G1SYPE@l-daemon> for lang@esoteric.sange.fi; Sat,
 05 Apr 2003 13:48:34 -0700 (MST)
Received: from pn2ml3so.prod.shaw.ca
 (pn2ml3so-qfe0.prod.shaw.ca [10.0.121.147]) by l-daemon
 (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HCW00M2R1SYMP@l-daemon> for lang@esoteric.sange.fi; Sat,
 05 Apr 2003 13:48:34 -0700 (MST)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.6 (built Apr 26 2002))
 with SMTP id <0HCW007UW1SXA5@l-daemon> for lang@esoteric.sange.fi; Sat,
 05 Apr 2003 13:48:34 -0700 (MST)
Date: Sat, 05 Apr 2003 14:48:32 -0600
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: pibfi (was Re: [bf] BFBASIC Compiler version 0.7)
In-reply-to: <20030403201838.C23632-100000@lilly>
To: lang@esoteric.sange.fi
Message-id: <20030405144832.6e978e12.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
References: <20030402213251.53412a9b.cpressey@catseye.mb.ca>
 <20030403201838.C23632-100000@lilly>
X-Spam-Score: -26.1 (--------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *191uad-0008j4-00*0yc5H.ZCPSU*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *191ub1-0008jx-00*VeX.iciUxzA*

On Thu, 3 Apr 2003 20:30:30 -0500 (EST)
Jeffry Johnston <jeffryj@lilly.csoft.net> wrote:

> On Wed, 2 Apr 2003, Chris Pressey wrote:
> > OK, I made a go at it:
> >
> >   http://www.catseye.mb.ca/projects/pibfi-+
> >
> 
> Haven't downloaded it yet, but this is very cool.  I can see it
> becoming the standard, it allows for almost everything :)
> 
> Wow, even has Return/Enter translations.. this is nifty.
> 
> Jeff

Don't congratulate me quite yet, there was a bug in it (and probably
still are others... ;)

Say you have -bfeol #13#10, and your Brainfuck program produced the
following output:

   #13 M #10

This used to generate the following output on stdout:

   M <eol>

pibfi-2003.0405 now produces the more correct

  #13 M #10

I also modularized it a bit better (not much, but a bit.)  And I changed
the output of non-ASCII values to the slightly less nonstandard
"&#charval;" format, as used in HTML.  Eventually, I'll see if I can tie
in a UCS handler to it or something...

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue Apr 08 21:47:13 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 192y5m-000Cik-00; Tue, 08 Apr 2003 21:45:10 +0300
Received: with LISTAR (v0.129a; list misc); Tue, 08 Apr 2003 21:45:03 +0300 (EEST)
Received: from web41009.mail.yahoo.com ([66.218.93.8])
	by oiva.sange.fi with smtp (Exim 4.12)
	id 192y5Z-000CgU-00
	for misc@esoteric.sange.fi; Tue, 08 Apr 2003 21:44:57 +0300
Message-ID: <20030408184419.56050.qmail@web41009.mail.yahoo.com>
Received: from [157.190.2.254] by web41009.mail.yahoo.com via HTTP; Tue, 08 Apr 2003 19:44:19 BST
Date: Tue, 8 Apr 2003 19:44:19 +0100 (BST)
From: =?iso-8859-1?q?Keith=20Gaughan?= <keithgaughan@yahoo.com>
Reply-To: keithgaughan@yahoo.com
Subject: Mini-purge on the webring
To: misc@esoteric.sange.fi
In-Reply-To: <20030326134037.53353dff.cpressey@catseye.mb.ca>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Spam-Score: -3.3 (---)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *192y5Z-000CgU-00*wEQd7p.Vuk.*
X-listar-version: Listar v0.129a
Sender: misc-bounce@esoteric.sange.fi
Errors-to: misc-bounce@esoteric.sange.fi
X-original-sender: keithgaughan@yahoo.com
Precedence: bulk
X-list: misc
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *192y5m-000Cik-00*HOWBbLTEKfg*

Hello all!

Sorry for being kinda absent all the time, but I just thought it'd be a good
idea so say that I'm after doing a purge on the webring[1] to clear out the
queue and suspend any sites that were breaking it.

K. -- Who's starting his co-op placement in the NMRC[2] tomorrow! :-)

[1] http://b.webring.com/hub?ring=esolang
[2] http://www.nmrc.ie/

__________________________________________________
Yahoo! Plus
For a better Internet experience
http://www.yahoo.co.uk/btoffer



From esoteric@oiva.sange.fi Tue Apr 15 01:23:23 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 195CKb-000BoT-00; Tue, 15 Apr 2003 01:21:41 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 15 Apr 2003 01:21:27 +0300 (EEST)
Received: from mx4.fuse.net ([216.68.1.133] helo=smtp02.fuse.net)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 195CKH-000Bnv-00
	for lang@esoteric.sange.fi; Tue, 15 Apr 2003 01:21:22 +0300
Received: from [192.168.1.3] ([216.196.161.75]) by smtp02.fuse.net
          (InterMail vM.5.01.05.27 201-253-122-126-127-20021220) with ESMTP
          id <20030414222118.NBBF21745.smtp02.fuse.net@[192.168.1.3]>
          for <lang@esoteric.sange.fi>; Mon, 14 Apr 2003 18:21:18 -0400
Subject: [lang] Homespring
From: Jeff Binder <obvious@fuse.net>
To: lang@esoteric.sange.fi
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
X-Mailer: Ximian Evolution 1.0.8 
Date: 14 Apr 2003 18:20:16 -0400
Message-Id: <1050358816.3891.128.camel@boxofstone>
Mime-Version: 1.0
X-Spam-Score: -6.3 (------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *195CKH-000Bnv-00*T5kXgwBEoSw*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: obvious@fuse.net
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *195CKb-000BoT-00*TJcTFfVdYpA*

Here's my first attempt at an esolang:

http://home.fuse.net/obvious/hs.html

It's kind of a perversion of data flow programming, and it also bears
resemblance to Hunter. I don't yet know if it's Turing complete; if it
isn't, I'll try to make it such. The interpreter (which is written in
Guile Scheme) is a bit of a mess, but once the language is finalized
I'll rewrite it (possibly in Perl so as to be more accessible).

What do you think?

-- 
Jeff Binder $ cat|tr -d '\n'|perl >q.c;cc q.c
eval($a=q{$_='eval($a=q{'.$a.'})';$0='\\\'x2;
s/\\\/$0x4/ge;s/"/$0\\\"/g;s/\\$/$0\\$/g;prin
t'main(){system("perl -e\\"'.$_.'\\">o");}'})'


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue Apr 15 08:43:40 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 195JDd-0007Dg-00; Tue, 15 Apr 2003 08:42:57 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 15 Apr 2003 08:42:43 +0300 (EEST)
Received: from post.it.helsinki.fi ([128.214.205.24])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 195JCu-0007Bs-00
	for lang@esoteric.sange.fi; Tue, 15 Apr 2003 08:42:12 +0300
Received: from xandru.it.helsinki.fi (mail@xandru.it.helsinki.fi [128.214.38.174])
	by post.it.helsinki.fi (8.12.9/8.12.2-SPAMmers-sod-off) with ESMTP id h3F5gC5X023405
	for <lang@esoteric.sange.fi>; Tue, 15 Apr 2003 08:42:12 +0300 (EEST)
Received: from pkalliok by xandru.it.helsinki.fi with local (Exim 3.35 #1 (Debian))
	id 195J9M-0006P8-00
	for <lang@esoteric.sange.fi>; Tue, 15 Apr 2003 08:38:32 +0300
Date: Tue, 15 Apr 2003 08:38:32 +0300
From: Panu Kalliokoski <pkalliok@cs.helsinki.fi>
To: lang@esoteric.sange.fi
Subject: [lang] Call for participation: Cbvm
Message-ID: <20030415053832.GA24578@ling.helsinki.fi>
Mail-Followup-To: lang@esoteric.sange.fi
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
User-Agent: Mutt/1.4i
Sender: Panu Kalliokoski <pkalliok@xandru.it.helsinki.fi>
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by post.it.helsinki.fi id h3F5gC5X023405
X-Spam-Score: -6.4 (------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *195JCu-0007Bs-00*rCXCiWibb/k*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.helsinki.fi
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *195JDd-0007Dg-00*Cb.gx7TSD1A*

Dunno if anyone has noticed, but I have a long-pending project called
Cbvm.  The name is short for "combinator based virtual machine", and is
just that.  I'll explain a bit of the motivation behind Cbvm, my plans
for it and some reasons you might want to participate.  (The (outright
pitiful) beginnings of this product are available at
http://sange.fi/~atehwa/obfcg/ if you want to check.)

First some background.  The combinator machine (SKI-calculus, whatever)
is almost trivially easy to implement (and has many implementations
already); and it has the following remarkable properties:
- it is easy to implement on different memory management models
- trivial mappings from the lambda calculus (which I from now on will
  call \-c) to combinatory logic exist.
- To \-c, in turn, there are almost trivial mappings from many
  functional languages, languages like Basic, Fortran and Pascal (and
  why not also C, if we forget about low-level hardware access), many
  esoteric languages, many machine languages (again, if we forget about
  hardware access) and many macro processing systems.
- this is because it is an encoding for a highly abstract environment
  that is, in many ways, a superset of many common languages in
  functionality.
- for the machine, it is easy to make implementations that execute fast,
  comparing in speed to compiled functional languages when doing
  symbolic processing, winning on scripting languages if enough
  primitives have been built with lower-level languages, and winning big
  on JVM / .NET's VM any time.

The only truly restricting property of the combinator machine is its
poor support for familiar basic data types.  Because the combinator
machine's encoding for everything is based on tree-like structures,
simpler things like integers and bit-stream data have an enormous
overhead.  However, it is relatively easy to add this functionality to
the machine as primitives.  This has lead me to think that the
combinator-based language should come in different "levels" (=E0 la
Postscript), in order of increasing functionality and decreasing
ease-of-implementation.  Trivial mappings exist from higher language
levels to lower ones.

I also propose that there be two standardised formats for the virtual
machine code.  One is for portability, and it is specified in terms of a
character stream.  One is for compactness, and is specified in terms of
a bit stream.  The former is especially suited for storing the code for
further processing (like C object files); the latter is especially
suited for runtime usage, like transmitting over network for execution
in peer.  As I introduce the levels, I also introduce the encodings of
the level's language constructs in both formats.

Level I: the bare bones of SKI.  Includes:

Name		Defined by	   Encoding	Notes
application	-		   `   1	all other ops are
dispatcher	```Sxyz =3D ``xz`yz  S   011	defined in terms of
constantifier	``Kxy =3D x	   K   010	application
identity	`Ix =3D x		   I   001

grammar:
expr :=3D=3D "S" | "K" | "I" | ` expr expr

Moreover, this level should include all non-reducible facilities, like
symbol bindings (if we want linking, I do), explicit concurrency and
"knots", aka pi-channels (if we decide these are necessary for dealing
with concurrency).  It's hard to define these, but here we go:

Name		Encoding		Notes
definition	?`...=3D	00000011...	"..." stands for a string; all
name		[a-z]+ or ?"..."	strings in the binary fmt are
			00000010...	byte-aligned
tyer		pi	00000001
				=09
grammar:
expr :=3D=3D ... | "pi" | ident | "?\"" ident "\""
def  :=3D=3D "?`" ident "=3D" expr

Every definition defines a new name for linking.  These names can
include (basically) any characters.  Names in expressions are
substituted with the expressions in the definition for that name.  Note
that the shorthand notation for names (all lowercase, without any
markers) makes names indistinguishable from builtins.

By the way, the namespace is flat.  But that doesn't prevent from making
encodings on hierarchical names from higher level languages.

Discussion about the tyer and concurrency are delayed until the levels
have all been introduced.

Level II: new native types.  Includes:

Name		Defined by	Encoding	Notes
number		``0fa =3D a,	[0-9]+  00111... native integer, not
		``nfa =3D `f``(n-1)fa		arbitrary precision.
						binary repr. must mark
						the precision somehow.
string		list of chars	"..."  00110...	char is a number.
array		``]ln =3D		]      00101	n must be a number. The
		`car``n cdr l			result is cached in `]l
						after first eval.
addition	``+nm =3D (n+m)	+	00100111  ([f] might be a good
substraction	``-nm =3D (n-m)	-	00100110   notation for `]f)
multiplication	``*nm =3D (n*m)	*	00100101
division	``/nm =3D (n/m)	/	00100100
modulus		``mod nm =3D (n%m) mod	00100011
equality	``=3Dnm =3D (n=3D=3Dm)	=3D	00100010
minority	``<nm =3D (n<m)	<	00100001

grammar:
expr :=3D=3D ... | number | "\"" chars "\"" | "]"
	| "+" | "-" | "*" | "/" | "mod" | "=3D" | "<"

Level III: facilities for speeding up the combinator machine.  Includes:

Name		Defined by			Encoding
self-referrer	`Yf =3D `f`Yf			Y	00010111
multi-way disp.	````phi(2)fgxy =3D ```fxy``gxy,	phi(n)	00010110...
		`````phi(3)fgxyz =3D ````fxyz```gxyz etc.
projection	```sgm(1 3)xyz =3D x,
		```sgm(2 3)xyz =3D y etc.		sgm(n m) 00010101... ...
grammar:
expr :=3D=3D ... | "Y" | "phi(" number ")" | "sgm(" number number ")"

Especially the projections might be of almost no use.  All these have
trivial encodings in level-I Cbvm.  Especially phi(1) =3D S, sgm(1 1) =3D=
 I,
sgm(1 2) =3D K and sgm(2 2) =3D `KI.

About concurrency:

My thoughts about the concurrency model are not very full-fledged.
However, a knot is a multiplexed I/O channel with no guarantees of
order.  It has N producers and one consumer.  The producers are ordinary
expressions that have the form of a list (more notes on encodings later
on).  The producers run concurrently and thus evaluate new cells
independently of each other and the consumer.  When examining the knot,
the consumer will see one list, with these cells in any order, but with
the guarantee that whenever even one of the producers has evaluated long
enough to produce a cell, that cell will be on the list.

The tyer is an operation to build hierarchies of knots.  It takes two
arguments, an expression e and a knot specifier k.  The expression is to
be executed concurrently, with its output bound to a knot specified by
k.  The return value of the tyer is that knot.  I've been trying to
think of a minimal set of knot specifiers to cover socket and socketpair
like functionality, and it should probably go like this:

k		means
0		this expression's input knot
1		a new knot
2		this expression's output knot (not strictly necessary)
any knot	the same knot
any string	a named knot, probably mapped to the filesystem or something

Input can be read from a knot by treating it as if it was a list.

This functionality (as probably some other as well) should be isolated
in a module.  But this would require a system to import non-native
modules - which might be a good idea, but most things _can_ be
implemented as native Cbvm modules, so this might be overkill.

One reason I'm hesitant about putting these in a module is that I've
planned for the module facility to be based on system calls, which in
turn is based on I/O, which in turn is (or could be) based on this knot
system.  On the other hand, I would not require level-I Cbvm
implementations to actually implement knots (many programs will do fine
without); they are included in level I just because they are not
reducible to level I.  (A note to Chris: this doesn't mean that a Cbvm
evaluator built in level-I Cbvm could not implement them - it could.)

The I/O protocol:

A program is a function from a list to a list.  (More on encodings later
on.)  The program should produce, as its value, a list of I/O requests,
and it will receive, as its argument, a list of I/O events.  The format
of the content of these lists is the I/O protocol.  An actor is a
program applied to a list.  A process is an actor whose output is tied
to a knot.  It is easy to see that processes are a special case of
expressions evaluated by the tyer - they have the additional restriction
that the lists they produce conform to the I/O protocol.

The notable thing about the I/O protocol is that it is "indirect": I/O
requests are not calls but values.  Programming in this model is quite
easy for simple tasks but whenever the program does some multiplexed I/O
_and_ must work in a stateful manner this clearly requires heavy
planning.  However, a monadic (you guessed it) framework to make this
look neat should be relatively easy to implement.

Now, on to the details of the I/O protocol.  Its goal are ease of
expansion, ability to cope with complex situations and ease of writing
simple, filter-like programs.  Every cell in the request/output stream
should be a pair of a channel identifier and a list of arguments (in
other words, a list whose head is a channel id).  Basically, the channel
id might be anything but I would favor numbers for most purposes.  There
are two (or three) predefined channels:

number	meaning
0	a control channel.  This channel is the basic switchboard for
	opening new channels.  Arguments vary depending on the request.
	Arguments for events should always start with a return code,
	which is an arbitrary object gathering generic claims about the
	result of a request in the spirit of C's errno or HTTP codes.
1	an unspecified communication channel.  Akin to C's standard
	streams, this channel provides a way to send messages without
	thinking who will read them and to read input from whoever is
	willing to provide some.  The arguments are strings.
2	special condition / OOB channel.  Akin to stderr and/or sockets
	out-of-band data.  Similar to the above but differentiable (by
	the channel number).  Also note that the imprecise semantics of
	knots allow these messages to be delivered before those on
	channel 1.

There are other points to take into accord when designing extensions to
the I/O protocol.  First, the control channel should not be polluted.
If you provide a new framework around some facility, don't define
0-channel messages for everything, rather add a 0-channel message to
request a new channel for controlling this framework.  Second, because
requests don't (directly) return values, services provided by the
framework should seldom (if ever) do {channel,object,resource} id
allocation themselves but rather let the process define the id's for new
things.  If a resource becomes available independent of the process, as
in the case of incoming network connections, the process should be able
to request this resource's messages under a specific (channel) id.

Encodings:

Cbvm takes the approach of Lazy-K (and abandons that of Unlambda) that
"external" objects like those received from / transmitted to I/O
channels should be native Cbvm objects.  (An axception being knots,
which are non-reducible.)  Because it is usually handy to represent
values in the same way internally and externally, encodings have a
massive impact on the program.  Moreover, as similar representations for
data are critical to interoperability, it is very important to find
sensible encodings.  The data structures presented here are "best of
breed" of what I've seen.

Numbers are ordinary Church numerals, as shown above.  Actually, Church
numerals are horrible for most operations, but you're not expected to
use them directly but instead use level-II integer primitives.  The only
situation in which the encoding becomes important is when the number is
actually called.  Iteration is very good semantics for this situation.
Moreover, Church numerals have relatively compact representation also as
native objects, and it is very easy to turn a Church numeral n into a
primitive integer (if they're supported): ``n`+1 0

(church numerals provide really nifty ways of writing some algorithms.
(Not that there were no niftier ones.) For example, look at this
fibonacci function:
fib n =3D n (\c n m -> c (n+m) n) (\n m -> n) 0 1
For comparison, here's a fast, caching Cbvm definition, using arrays:
fib_of n m =3D cons n (fib_of (n+m) n)
fib =3D array (fib_of 0 1)
)

In general, primitive data should always look exactly the same to the
program as the same data encoded combinatorially.  An exception are
integers, which require too much overhead (and programmer trouble) to be
handled as if they were really integers, ie. arbitrarily large.  So the
primitive integers will probably wrap or have some way to mark "not
representable" (frankly, I don't care, because if you really need
arbitrary-precision numbers, you should use strings to encode them).

The encoding for lists is a very traditional one, primarily aimed at
infinite lists but allowing for finite ones as well:
cons h t =3D \sel -> sel h t
car list =3D list K
cdr list =3D list (K I)
nullp list =3D list (K (K true))
nil =3D K false

The encoding of booleans is even more traditional: true=3DK, false=3D`KI

Making primitive data types look the same as combinator-based ones
requires two kinds of abstractions: code to handle the case when a
primitive datum gets _called_ and code to handle the case when primitive
_operations_ get non-primitive data as operands.

In the case of strings, this might mean that:
- primitive strings should probably be represented (in the
  implementation language) by a (pointer, index) pair - the former for
  memory management, the latter for easily representing string "tails"
- a string, when applied to an argument, calls its argument with two
  arguments: a number representing the string's first character and a
  new string formed by incrementing the index by one
- there should probably be some code to optimise the common case of
  primitive-string-in-an-array.  Probably ditto for non-primitive
  strings too...

Areas of application:

In no specific order.
- "eternal algorithms".  Portability based not on existing
  implementations but on ease of reimplementation, akin to Forth, only
  more so.
- An obvious basis for ESO.
- Push-model distributed computing environments.  Most current
  environments are complex and insecure enough for people not to want to
  allow other people to proactively use their computer.  Thus, projects
  like SETI@home are at the mercy of the laziness of people.  Cbvm, on
  the other hand, provides a very tight, very safe environment whose
  resource usage is easy to control, thus enabling people to donate
  processor time into activities _not specified on beforehand_.
- distributed programming in general and other buzzwords
- narrowing of the gap between programmer and language implementor.
  Cbvm should provide an ideal environment for people to define their
  new programming languages in; in the best case, this will lead into
  the demystification of language design.
- narrowing of the gap between code and data.  (What is this good for?)
- embedding.  As the evaluator itself is _very_ small (especially if it
  does not provide linking and/or knots), it makes an ideal choice for
  an embedded scripting engine.  All that is needed is domain-specific
  extensions to the I/O protocol.
- interoperability between languages.  As Cbvm gets more language
  frontends, it should become possible (depending on how the mappings
  are arranged) to mix libraries / code written in different languages.

Pieces of software:

Here I list some pieces of software that would be beneficial to build,
related to Cbvm:

virtual machines.
	one of the aims of Cbvm is to provide a highly portable
	environment.  The more there are implementations, the more
	useful software written for Cbvm becomes.  This also provides
	opportunities for research in different technologies of
	implementing functional languages efficiently.

distributors.
	Cbvm provides a great platform to research the advantages of
	a long-claimed strength of functional languages, the ability to
	automatically distribute calculation.

converters.
	Cbvm has many well-defined formats.  There should be good tools
	for conversions between language levels, binary/text-based
	encoding and such stuff.

optimisers.
	the raw Cbvm format allows for many kinds of optimisations.  One
	of the most fascinating ones is based on equivalence classes of
	combinatorial expressions: basically, one could build an
	exhaustive set hash of equivalent expressions up to a certain
	length and replace all equivalent exprs with the shortest one.
	There are probably also some relatively arcane optimisations
	with which array usage patterns could be optimised.

language implementations.
	Cbvm provides a very versatile environment.  It should be
	relatively easy to provide mappings from many languages into
	Cbvm.  It is also obvious that Cbvm naturally gives arise to
	some new language(s).

library implementations.
	probably most Cbvm programs and programming languages would
	benefit from standard Cbvm libraries (probably writter in/for
	some specific language from which mappings into Cbvm exist).

glue.
	A lot of glue code will probably be needed to combine this all
	into highly useful pieces of software.  Maybe there also should
	be some kind of glue library to easily call Cbvm from C.
	(Mostly it should provide data conversions etc...)

bootstrapping.
	It shouldn't be all that impossible to write a Cbvm compiler for
	a language which can be compiled into Cbvm.

--=20
personal contact: atehwa@iki.fi, +35841 5323835
work contact: pkalliok@ling.helsinki.fi, +35850 3678003
kotisivu (henkkoht):	http://www.iki.fi/atehwa/
homepage (technical):	http://sange.fi/~atehwa/

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue Apr 15 12:39:16 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 195Mtf-000JMM-00; Tue, 15 Apr 2003 12:38:35 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 15 Apr 2003 12:38:21 +0300 (EEST)
Received: from [64.246.18.86] (helo=neuron.neuron1.com)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 195MtL-000JLj-00
	for lang@esoteric.sange.fi; Tue, 15 Apr 2003 12:38:16 +0300
Received: by neuron.neuron1.com (Postfix, from userid 33)
	id 8E58536C1A3; Tue, 15 Apr 2003 10:38:13 +0100 (BST)
To: lang@esoteric.sange.fi
Subject: [lang] Re: Homespring
From: Cal Henderson <cal@iamcal.com>
MIME-Version: 1.0
Content-Type: TEXT/plain; CHARSET=US-ASCII
X-Mailer: WeaselMail <http://software.iamcal.com>
Message-Id: <20030415093813.8E58536C1A3@neuron.neuron1.com>
Date: Tue, 15 Apr 2003 10:38:13 +0100 (BST)
X-Spam-Score: 0.0 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *195MtL-000JLj-00*qlNKK9qJ6.M*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cal@iamcal.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *195Mtf-000JMM-00*Q6oPMHkX8z2*

At 23:24 GMT 14.04.03, Jeff Binder <obvious@fuse.net> wrote:
: Here's my first attempt at an esolang:
: 
: http://home.fuse.net/obvious/hs.html
: 
: What do you think?

it's great. i made a start at a perl interpreter. got as far as parsing and
building the tree, though i'm hoping to have some more time to play with it
pretty soon:

http://www.iamcal.com/files/Language-Homespring-0.01.tar.gz


--cal



-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue Apr 15 14:44:36 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 195Or1-000062-00; Tue, 15 Apr 2003 14:43:59 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 15 Apr 2003 14:43:45 +0300 (EEST)
Received: from hera.cwi.nl ([192.16.191.8])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 195Oqe-00003V-00
	for lang@esoteric.sange.fi; Tue, 15 Apr 2003 14:43:36 +0300
Received: from mast.ins.cwi.nl (mast.ins.cwi.nl [192.16.196.17]) by hera.cwi.nl with ESMTP
	id NAA21529 for <lang@esoteric.sange.fi>; Tue, 15 Apr 2003 13:43:05 +0200 (MEST)
Received: from serpens.ins.cwi.nl (IDENT:NFo0hNDSIVNKCCikKsSDzuxOqM+aF3yE@serpens.ins.cwi.nl [192.16.196.129])
	by mast.ins.cwi.nl (8.11.6/8.9.3/FLW-3.11M) with ESMTP id h3FBh5U00954
	for <lang@esoteric.sange.fi>; Tue, 15 Apr 2003 13:43:05 +0200
Received: by serpens.ins.cwi.nl (Postfix, from userid 240)
	id 7EA9FE0A8E; Tue, 15 Apr 2003 13:43:05 +0200 (CEST)
Date: Tue, 15 Apr 2003 13:43:05 +0200
From: John Tromp <John.Tromp@cwi.nl>
To: lang@esoteric.sange.fi
Subject: [lang] Re: Call for participation: Cbvm
Message-ID: <20030415114305.GC8524@serpens.ins.cwi.nl>
References: <20030415053832.GA24578@ling.helsinki.fi>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
In-Reply-To: <20030415053832.GA24578@ling.helsinki.fi>
User-Agent: Mutt/1.4.1i
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by hera.cwi.nl id NAA21529
X-Spam-Score: -26.0 (--------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *195Oqe-00003V-00*Q7qdYciOehw*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: John.Tromp@cwi.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *195Or1-000062-00*GuoYZRiqehU*

dear Panu,

> First some background.  The combinator machine (SKI-calculus, whatever)
> is almost trivially easy to implement (and has many implementations
> already); and it has the following remarkable properties:
> - it is easy to implement on different memory management models
> - trivial mappings from the lambda calculus (which I from now on will
>   call \-c) to combinatory logic exist.

of course, the trivial ones can lead to a terrible case of code bloat,
as Turner has demonstrated.

> - To \-c, in turn, there are almost trivial mappings from many
>   functional languages, languages like Basic, Fortran and Pascal (and
>   why not also C, if we forget about low-level hardware access), many
>   esoteric languages, many machine languages (again, if we forget about
>   hardware access) and many macro processing systems.
> - this is because it is an encoding for a highly abstract environment
>   that is, in many ways, a superset of many common languages in
>   functionality.
> - for the machine, it is easy to make implementations that execute fast=
,
>   comparing in speed to compiled functional languages when doing
>   symbolic processing, winning on scripting languages if enough
>   primitives have been built with lower-level languages, and winning bi=
g
>   on JVM / .NET's VM any time.

You'll never touch the speed of a JVM with a good JIT, which are now
within 25% of the speed of C.

> The only truly restricting property of the combinator machine is its
> poor support for familiar basic data types.  Because the combinator
> machine's encoding for everything is based on tree-like structures,
> simpler things like integers and bit-stream data have an enormous
> overhead.  However, it is relatively easy to add this functionality to
> the machine as primitives.  This has lead me to think that the
> combinator-based language should come in different "levels" (=E0 la
> Postscript), in order of increasing functionality and decreasing
> ease-of-implementation.  Trivial mappings exist from higher language
> levels to lower ones.

The higher levels should not require any implementation. Instead the
higher levels can be coding conventions offering opportunities for heavy
optimization.

> I also propose that there be two standardised formats for the virtual
> machine code.  One is for portability, and it is specified in terms of =
a
> character stream.  One is for compactness, and is specified in terms of
> a bit stream.  The former is especially suited for storing the code for
> further processing (like C object files); the latter is especially
> suited for runtime usage, like transmitting over network for execution
> in peer.  As I introduce the levels, I also introduce the encodings of
> the level's language constructs in both formats.

I think you should also consider lambda calculus, in particular
de Bruijn notation, as a code format:

term         notation  encoding
---------------------------------
abstraction  (\x.M)    00 <M>
application  (M N)     01 <M> <N>
variable     i         1^{i+1}0

This will turn out to be much more compact and as you said is easily
converted to CL on the fly.
In fact, the following is a lambda interpreter in CL:

SSK(S(K(SS(S(SSK))))K)(S(S(S(K(S(K(S(K(S(K(S(K(S(KS)))S))K))(S(K(S(K(S(
K(S(K(S(K(S(K(S(SKK)))K))))S))(S(S(K(S(K(S(K(S(K(S(K(S(K(S(K(S(SKK)))))
S))K))S))))S))K))))K)))))S))K)(S(K(S(K(S(K(S(K(S(K(S(S(K(S(S(K(S(K(S(S(
K(S(K(S(KS)(S(S(K(S(K(S(KS)))S))K))))K)))(K(S(K(S(K(S(K(SS(K(S(K(S(S(K(
S(K(S(K(S(K(SS(KK)))K))S))(S(SKK))))K)))K))))K))S))K))))S))K))))(K(S(K(
S(K(S(K(SS(KS)))K))S))K))))S))K))(S(KK))))S))K))(S(K(S(K(S(K(S(S(K(S(S(
S(K(S(K(S(K(S(K(S(K(S(K(S(KK)))S))K))S))(S(SKK))))K)))(K(S(SKK)(KK)))))
))(K(S(K(SS(K(S(K(SS(K(S(SKK)(K(SK))))))K))))K))))S))K))(S(K(S(K(S(KK)K
)))))))(SS(SK))


> Level I: the bare bones of SKI.  Includes:
>=20
> Name		Defined by	   Encoding	Notes
> application	-		   `   1	all other ops are
> dispatcher	```Sxyz =3D ``xz`yz  S   011	defined in terms of
> constantifier	``Kxy =3D x	   K   010	application
> identity	`Ix =3D x		   I   001

If you want to start out bare bones, then leave I for later.
It looks as though you're worried that having to write SKK for I will
lead to code bloat.

> grammar:
> expr :=3D=3D "S" | "K" | "I" | ` expr expr
>=20
> Moreover, this level should include all non-reducible facilities, like
> symbol bindings (if we want linking, I do), explicit concurrency and
> "knots", aka pi-channels (if we decide these are necessary for dealing
> with concurrency).  It's hard to define these, but here we go:
>=20
> Name		Encoding		Notes
> definition	?`...=3D	00000011...	"..." stands for a string; all
> name		[a-z]+ or ?"..."	strings in the binary fmt are
> 			00000010...	byte-aligned
> tyer		pi	00000001
> 				=09
> grammar:
> expr :=3D=3D ... | "pi" | ident | "?\"" ident "\""
> def  :=3D=3D "?`" ident "=3D" expr
>=20
> Every definition defines a new name for linking.  These names can
> include (basically) any characters.  Names in expressions are
> substituted with the expressions in the definition for that name.  Note
> that the shorthand notation for names (all lowercase, without any
> markers) makes names indistinguishable from builtins.
>=20
> By the way, the namespace is flat.  But that doesn't prevent from makin=
g
> encodings on hierarchical names from higher level languages.
>=20
> Discussion about the tyer and concurrency are delayed until the levels
> have all been introduced.
>=20
> Level II: new native types.  Includes:
>=20
> Name		Defined by	Encoding	Notes
> number		``0fa =3D a,	[0-9]+  00111... native integer, not
> 		``nfa =3D `f``(n-1)fa		arbitrary precision.

Elegant as they may be, I think using bitstrings for integers is much
more practical. Just use the correspondence
0 ""
1 "0"
2 "1"
3 "00"
4 "01"
5 "10"
...

Sure, addition and multiplication become quite a bit more involved,
but it's exponentially more efficient than unary. Also, decrement is
alot easier.
An optimzed implementation would just use 32 or 64 bit int representation
for small ints and transparently switch to explicit bitstring for larger
values, just like in scheme and ruby.

> About concurrency:
> My thoughts about the concurrency model are not very full-fledged.
> However, a knot is a multiplexed I/O channel with no guarantees of
> order.  It has N producers and one consumer.  The producers are ordinar=
y
> expressions that have the form of a list (more notes on encodings later
> on).  The producers run concurrently and thus evaluate new cells
> independently of each other and the consumer.  When examining the knot,
> the consumer will see one list, with these cells in any order, but with
> the guarantee that whenever even one of the producers has evaluated lon=
g
> enough to produce a cell, that cell will be on the list.

Does that mean you're willing to throw the purity of the language
out of the window? That would be a big shame:(

regards,

%!PS                       %  -John Tromp (http://www.cwi.nl/~tromp/)
42 42 scale 7 9 translate .07 setlinewidth .5 setgray/c{arc clip fill
setgray}def 1 0 0 42 1 0 c 0 1 1{0 3 3 90 270 arc 0 0 6 0 -3 3 90 270
arcn 270 90 c -2 2 4{-6 moveto 0 12 rlineto}for -5 2 5{-3 exch moveto
9 0 rlineto}for stroke 0 0 3 1 1 0 c 180 rotate initclip}for showpage

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue Apr 15 16:58:20 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 195QwN-0006vW-00; Tue, 15 Apr 2003 16:57:39 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 15 Apr 2003 16:57:25 +0300 (EEST)
Received: from pc1-cove3-5-cust238.brhm.cable.ntl.com ([81.107.6.238] helo=DAVIDDESKTOP)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 195Qvv-0006t4-00
	for lang@esoteric.sange.fi; Tue, 15 Apr 2003 16:57:11 +0300
Received: from [127.0.0.1] by DAVIDDESKTOP
  (ArGoSoft Mail Server, Version 1.8 (1.8.1.1)); Tue, 15 Apr 2003 14:57:13 +0100
Message-ID: <3E9C0FB8.4030800@crunchybear.com>
Date: Tue, 15 Apr 2003 14:57:12 +0100
From: David Chipping <david@crunchybear.com>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4a) Gecko/20030401
X-Accept-Language: en-us, en
MIME-Version: 1.0
To:  lang@esoteric.sange.fi
Subject: [lang] Ale
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -5.8 (-----)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *195Qvv-0006t4-00*.iwfxeXil2M*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: david@crunchybear.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *195QwN-0006vW-00*zPuAcnoPjKQ*

After trying to combat an afternoon of boredom, I tried to implement my 
first esolang:

http://crunchybear.com/ale/

Its in the spirit of Brainfuck, but uses to tape's and two implicit 
pointers. There is no direct manipulation of data, only the 
collaboration of the two pointer values. Its got 8 single character 
operations and is a real pain to work with. I'm not sure if it's Turing 
complete (I think its close).

Anyway, thoughts/opinions?

Cheers

David



-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue Apr 15 20:29:22 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 195UEc-000HPs-00; Tue, 15 Apr 2003 20:28:42 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 15 Apr 2003 20:28:28 +0300 (EEST)
Received: from mx4.fuse.net ([216.68.1.133] helo=smtp02.fuse.net)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 195UEI-000HPH-00
	for lang@esoteric.sange.fi; Tue, 15 Apr 2003 20:28:22 +0300
Received: from [192.168.1.3] ([216.196.161.33]) by smtp02.fuse.net
          (InterMail vM.5.01.05.27 201-253-122-126-127-20021220) with ESMTP
          id <20030415172819.SISX21745.smtp02.fuse.net@[192.168.1.3]>
          for <lang@esoteric.sange.fi>; Tue, 15 Apr 2003 13:28:19 -0400
Subject: [lang] Re: Homespring
From: Jeff Binder <obvious@fuse.net>
To: lang@esoteric.sange.fi
In-Reply-To: <20030415093813.8E58536C1A3@neuron.neuron1.com>
References: <20030415093813.8E58536C1A3@neuron.neuron1.com>
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
X-Mailer: Ximian Evolution 1.0.8 
Date: 15 Apr 2003 13:27:23 -0400
Message-Id: <1050427643.3933.5.camel@boxofstone>
Mime-Version: 1.0
X-Spam-Score: -32.4 (--------------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *195UEI-000HPH-00*nqTBX6CrYcM*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: obvious@fuse.net
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *195UEc-000HPs-00*6ak1mS0ZEhA*

On Tue, 2003-04-15 at 05:38, Cal Henderson wrote:
> At 23:24 GMT 14.04.03, Jeff Binder <obvious@fuse.net> wrote:
> : Here's my first attempt at an esolang:
> : 
> : http://home.fuse.net/obvious/hs.html
> : 
> : What do you think?
> 
> it's great. i made a start at a perl interpreter. got as far as parsing and
> building the tree, though i'm hoping to have some more time to play with it
> pretty soon:
> 
> http://www.iamcal.com/files/Language-Homespring-0.01.tar.gz

Great! I look foreward to seeing it.

I just made a minor update to it, namely better handling of completely
blank (null) programs. A null Homespring program should print the
message 'In Homespring, the null program is not a quine.' and exit. No
cheating!

-- 
Jeff Binder $ cat|tr -d '\n'|perl >q.c;cc q.c
eval($a=q{$_='eval($a=q{'.$a.'})';$0='\\\'x2;
s/\\\/$0x4/ge;s/"/$0\\\"/g;s/\\$/$0\\$/g;prin
t'main(){system("perl -e\\"'.$_.'\\">o");}'})'


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu Apr 17 16:22:37 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 1969KH-000LJf-00; Thu, 17 Apr 2003 16:21:17 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 17 Apr 2003 16:21:03 +0300 (EEST)
Received: from post.it.helsinki.fi ([128.214.205.24])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 1969Jx-000LJ8-00
	for lang@esoteric.sange.fi; Thu, 17 Apr 2003 16:20:57 +0300
Received: from xandru.it.helsinki.fi (mail@xandru.it.helsinki.fi [128.214.38.174])
	by post.it.helsinki.fi (8.12.9/8.12.2-SPAMmers-sod-off) with ESMTP id h3HDKu5X021499
	for <lang@esoteric.sange.fi>; Thu, 17 Apr 2003 16:20:56 +0300 (EEST)
Received: from pkalliok by xandru.it.helsinki.fi with local (Exim 3.35 #1 (Debian))
	id 1969GH-00077Q-00
	for <lang@esoteric.sange.fi>; Thu, 17 Apr 2003 16:17:09 +0300
Date: Thu, 17 Apr 2003 16:17:08 +0300
From: Panu Kalliokoski <pkalliok@cs.helsinki.fi>
To: lang@esoteric.sange.fi
Subject: [lang] Re: Call for participation: Cbvm
Message-ID: <20030417131708.GA27358@ling.helsinki.fi>
Mail-Followup-To: lang@esoteric.sange.fi
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.4i
Sender: Panu Kalliokoski <pkalliok@xandru.it.helsinki.fi>
X-Spam-Score: -16.7 (----------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *1969Jx-000LJ8-00*YFdPoFBnKnQ*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.helsinki.fi
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *1969KH-000LJf-00*/QKKGuckOzI*

On Tue, Apr 15, 2003 at 01:43:05PM +0200, John Tromp wrote:
> > - trivial mappings from the lambda calculus (which I from now on will
> >   call \-c) to combinatory logic exist.
> of course, the trivial ones can lead to a terrible case of code bloat,
> as Turner has demonstrated.

Well, I wasn't talking about the _most_ trivial ones...  cbvm_abstr.ml
(in http://sange.fi/~atehwa/obcfg/) should give a pretty good picture.
In many cases, including the eta rule suffices for quite compact
translations.  Also note that the symbol / linking facility takes away
much of the bloat.

> > - for the machine, it is easy to make implementations that execute fast,
> >   comparing in speed to compiled functional languages when doing
> >   symbolic processing, winning on scripting languages if enough
> >   primitives have been built with lower-level languages, and winning big
> >   on JVM / .NET's VM any time.
> You'll never touch the speed of a JVM with a good JIT, which are now
> within 25% of the speed of C.

I'll take this as an indication that you've experimented around with
this.  However, my experience has been that compiling combinatorial
expressions into native code does not speed them up (usually on the
contrary unless the compiler is quite clever), so apparently there are
many situations where JIT's wouldn't beat the system even though they
were within 80% of the speed of C.

> > ease-of-implementation.  Trivial mappings exist from higher language
> > levels to lower ones.
> The higher levels should not require any implementation. Instead the
> higher levels can be coding conventions offering opportunities for heavy
> optimization.

You're rephrasing my point with optimization = implementation.  I take
that your point is that the lower levels are equally optimizable, just
the optimiser is harder to make.  I'll take your word for this but I
won't be expecting anybody to actually implement such an optimiser.

> > I also propose that there be two standardised formats for the virtual
> > machine code.  
[...]
> I think you should also consider lambda calculus, in particular
> de Bruijn notation, as a code format:

This is quite neat, but it goes against two of my important goals: ease
of implementation and extensibility.  Ease of implementation, because
even though trivial mappings between the binary lambda notation and the
text-based combinatorial notation exist, making a space-effective
conversion from the text-based comb.notation (which is, in my book,
somehow primary to the binary one) to the binary lambda notation is
non-trivial indeed.

(Maybe you're hinting that the actual encoding for the whole Cbvm should
be lambda-based.  Besides invalidating the name Cbvm, this also goes
against ease of implementation, efficiency, and makes it more difficult
to apply the raw-force optimisations which I've thought should be
possible between Cbvm code files.)

Extensibility, because this encoding uses up all of the Huffman space
and does not allow for, for example, linking.

> > Level I: the bare bones of SKI.  Includes:
> If you want to start out bare bones, then leave I for later.
> It looks as though you're worried that having to write SKK for I will
> lead to code bloat.

I included I because, frankly, it is almost always included, does not
disturb a bit (the only reason to possibly exclude it is purity, which
is not my aim) and, most importantly, because it does not add a bit to
the complexity of implementing level-I Cbvm.  Level-I Cbvm is
nigh-unusable anyway for anything practical, and is only included as
some kind of baseline "look, you _can_ implement it with a few lines of
code".

> Elegant as they may be, I think using bitstrings for integers is much
> more practical. Just use the correspondence
[...]
> Sure, addition and multiplication become quite a bit more involved,
> but it's exponentially more efficient than unary. Also, decrement is
> alot easier.

I don't expect anybody to use level-I for anything practical, so I'm not
concerned about the representation.  If you use level-II primitive
operations for normal arithmetic, the iterative (Church) semantics for
numbers is a _lot_ more useful than bitstrings for the programmer in the
remaining situations.

> An optimzed implementation would just use 32 or 64 bit int representation
> for small ints and transparently switch to explicit bitstring for larger
> values, just like in scheme and ruby.

Exceeding the bit limit is enough a borderline situation that I don't deem
it worth exchanging the whole representation for numbers.  If level-I
Cbvm was all there is to it, then it would be feasible...  As I
mentioned later in my posting, if you know you need arbitrary-sized
integers, you should probably use strings to encode them and use some
library to handle them.

> > on).  The producers run concurrently and thus evaluate new cells
> > independently of each other and the consumer.  When examining the knot,
> > the consumer will see one list, with these cells in any order, but with
> > the guarantee that whenever even one of the producers has evaluated long
> > enough to produce a cell, that cell will be on the list.
> Does that mean you're willing to throw the purity of the language
> out of the window? That would be a big shame:(

Yes, and no, depending on what you mean by "purity".  For example, you
still don't get explicit claims about time, just dependent ones.  For
example, the only expressions that can expect to use the data produced
in a separate process are those that depend directly on the result of
the tyer creating the process.  Also, the output list of the knot is the
same, no matter how many times you read it.  In some cases, knots
destroy referential transparency.  However, AFAICT, they do it in such a
way that you can't base your code on the order.

For example, think about two producers sending messages to a knot.  The
effects of the messages are mutually exclusive.  However, there is no
way to know which one takes precedence, because even if the second
process is only created after the first message has been sent, the knot
does not guarantee the order in which the messages arrive.  The only way
to ensure the order is to get a receipt message from the consumer
process and only then send the second message - but that takes us back
to dependency-based purity.

So, the only kind of purity lost is that you can now write programs that
behave in an unpredictable way.  IMO, this is a small cost for being
able to solve a class of problems that would be very hard to solve
otherwise.

Panu

-- 
personal contact: atehwa@iki.fi, +35841 5323835
work contact: pkalliok@ling.helsinki.fi, +35850 3678003
kotisivu (henkkoht):	http://www.iki.fi/atehwa/
homepage (technical):	http://sange.fi/~atehwa/


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue Apr 22 09:53:45 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 197rde-000CoH-00; Tue, 22 Apr 2003 09:52:22 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 22 Apr 2003 09:52:07 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd4mo3so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 197rdG-000CnD-00
	for lang@esoteric.sange.fi; Tue, 22 Apr 2003 09:51:58 +0300
Received: from pd2mr2so.prod.shaw.ca (pd2mr2so-ser.prod.shaw.ca [10.0.141.109])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HDQ007N7GEHOK@l-daemon> for lang@esoteric.sange.fi; Tue,
 22 Apr 2003 00:51:53 -0600 (MDT)
Received: from pn2ml1so.prod.shaw.ca
 (pn2ml1so-qfe0.prod.shaw.ca [10.0.121.145]) by l-daemon
 (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HDQ006M0GEH36@l-daemon> for lang@esoteric.sange.fi; Tue,
 22 Apr 2003 00:51:53 -0600 (MDT)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with SMTP id <0HDQ009D4GEHXE@l-daemon> for lang@esoteric.sange.fi; Tue,
 22 Apr 2003 00:51:53 -0600 (MDT)
Date: Tue, 22 Apr 2003 01:52:08 -0500
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: Call for participation: Cbvm
In-reply-to: <20030415053832.GA24578@ling.helsinki.fi>
To: lang@esoteric.sange.fi
Message-id: <20030422015208.5f0d6cf7.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
References: <20030415053832.GA24578@ling.helsinki.fi>
X-Spam-Score: -26.1 (--------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *197rdG-000CnD-00*.w.E3yrjnbY*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *197rde-000CoH-00*tDBPgZO4eS2*

On Tue, 15 Apr 2003 08:38:32 +0300
Panu Kalliokoski <pkalliok@cs.helsinki.fi> wrote:

> Dunno if anyone has noticed, but I have a long-pending project called
> Cbvm.  The name is short for "combinator based virtual machine", and
> is just that.  I'll explain a bit of the motivation behind Cbvm, my
> plans for it and some reasons you might want to participate.  (The
> (outright pitiful) beginnings of this product are available at
> http://sange.fi/~atehwa/obfcg/ if you want to check.)
> 
> [...]

Judging by it's contemporaries, it'll never succeed - it just hasn't got
enough to do with bears!

But that's easy enough to remedy I suppose, just choose this guy as
Cbvm's official mascot:

http://members.surfeu.fi/kklaine/tpnsb/poopbear.html

> Input can be read from a knot by treating it as if it was a list.
> [...]
> On the other hand, I would not require level-I Cbvm
> implementations to actually implement knots (many programs will do
> fine without); they are included in level I just because they are not
> reducible to level I.  (A note to Chris: this doesn't mean that a Cbvm
> evaluator built in level-I Cbvm could not implement them - it could.)

Hmmm?  My contention isn't that asynchronous I/O is impossible in this
sort of framework, it's that it's unnatural - and your choice to make it
irreducible would seem to reinforce that belief rather than challenging
it ;)

> Areas of application:
> [...]
> - An obvious basis for ESO.

I'm glad you find it obvious; you must have a very large brain. 
Personally, I don't even find it obvious that ESO needs a virtual
machine as its basis.  Operating systems aren't programming languages.

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue Apr 22 19:33:52 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 1980hT-000GQl-00; Tue, 22 Apr 2003 19:32:55 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 22 Apr 2003 19:32:40 +0300 (EEST)
Received: from lilly.csoft.net ([63.111.22.101] helo=mail102.csoft.net)
	by oiva.sange.fi with smtp (Exim 4.12)
	id 1980h3-000GPs-00
	for lang@esoteric.sange.fi; Tue, 22 Apr 2003 19:32:30 +0300
Received: (qmail 44977 invoked by uid 2567); 22 Apr 2003 16:43:57 -0000
Received: from localhost (sendmail-bs@127.0.0.1)
  by localhost with SMTP; 22 Apr 2003 16:43:57 -0000
Date: Tue, 22 Apr 2003 11:43:57 -0500 (EST)
From: Jeffry Johnston <jeffryj@lilly.csoft.net>
X-X-Sender: jeffryj@lilly
To: lang@esoteric.sange.fi
Subject: [lang] Re: Call for participation: Cbvm
In-Reply-To: <20030422015208.5f0d6cf7.cpressey@catseye.mb.ca>
Message-ID: <20030422111041.F39079-100000@lilly>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-Spam-Score: -20.1 (--------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *1980h3-000GPs-00*ZPjbLAEgGhg*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: jeffryj@lilly.csoft.net
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *1980hT-000GQl-00*a6ypdNSn5Zk*



On Tue, 22 Apr 2003, Chris Pressey wrote:

> > - An obvious basis for ESO.
>
> I'm glad you find it obvious; you must have a very large brain.
> Personally, I don't even find it obvious that ESO needs a virtual
> machine as its basis.  Operating systems aren't programming languages.

From what I've seen working on ESO and PICOS (a command line OS I was
writing for the PIC processor), the virtual machine isn't needed at all,
but it seems to be good for portability.

However, the PICOS programs I would write aren't going to be portable.
It comes down to whether you want the portability built into the OS as a
virtual machine, or whether you want it later through compilers like C.

From what I've seen with Java and game system emulators (Atari 2600,
Gameboy, etc), having a virtual machine seems to work pretty well; there
is a single standard to achieve.  I haven't personally had much luck with
C style portability, unless there was a ./configure script.. and then even
that doesn't work for Windows, MS-DOS, or classic Mac.  The custom
libraries are the biggest problem, IMO.  The ANSI standard is
pretty decent, but it doesn't answer a lot of questions about graphics,
sound, etc.

Portability at its extreme doesn't seem to work anyways.  Eventually
something new will be needed, and I can see three alternatives:

1) There is someone (or a group) controlling the language so it stays
portable (Java)

2) There is more than one solution to the problem and writing portable
code becomes increasingly difficult (BF, C, Basic)

3) The language dies (Pascal)

Jeff


>
> -Chris
>
> --
> To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
> unsubscribe lang	[if you receive these messages via lang]
> unsubscribe misc	[if you receive these messages via misc]
>
>


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Wed Apr 23 01:14:25 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19861M-0007Th-00; Wed, 23 Apr 2003 01:13:48 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 23 Apr 2003 01:13:34 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd3mo1so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 198613-0007T7-00
	for lang@esoteric.sange.fi; Wed, 23 Apr 2003 01:13:29 +0300
Received: from pd4mr1so.prod.shaw.ca
 (pd4mr1so-qfe3.prod.shaw.ca [10.0.141.212]) by l-daemon
 (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HDR00G75N2EZN@l-daemon> for lang@esoteric.sange.fi; Tue,
 22 Apr 2003 16:13:26 -0600 (MDT)
Received: from pn2ml10so.prod.shaw.ca
 (pn2ml10so-qfe0.prod.shaw.ca [10.0.121.80])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HDR00APUN2EUW@l-daemon> for lang@esoteric.sange.fi; Tue,
 22 Apr 2003 16:13:26 -0600 (MDT)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with SMTP id <0HDR002CHN2DNK@l-daemon> for lang@esoteric.sange.fi; Tue,
 22 Apr 2003 16:13:26 -0600 (MDT)
Date: Tue, 22 Apr 2003 17:13:42 -0500
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: ESO (was: Re: Call for participation: Cbvm)
In-reply-to: <20030422111041.F39079-100000@lilly>
To: lang@esoteric.sange.fi
Message-id: <20030422171342.44be14c2.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
References: <20030422015208.5f0d6cf7.cpressey@catseye.mb.ca>
 <20030422111041.F39079-100000@lilly>
X-Spam-Score: -19.6 (-------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *198613-0007T7-00*UKyYviI7P6M*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19861M-0007Th-00*Ap4200M9.go*

On Tue, 22 Apr 2003 11:43:57 -0500 (EST)
Jeffry Johnston <jeffryj@lilly.csoft.net> wrote:

> On Tue, 22 Apr 2003, Chris Pressey wrote:
> 
> > > - An obvious basis for ESO.
> >
> > I'm glad you find it obvious; you must have a very large brain.
> > Personally, I don't even find it obvious that ESO needs a virtual
> > machine as its basis.  Operating systems aren't programming
> > languages.
> 
> From what I've seen working on ESO and PICOS (a command line OS I was
> writing for the PIC processor), the virtual machine isn't needed at
> all, but it seems to be good for portability.
> 
> However, the PICOS programs I would write aren't going to be portable.

But surely if you ran PICOS on a PIC emulator...? :)

I'm looking at it this way.  An operating system is a protocol that
describes how to access system resources.  You can incorporate that
protocol into a virtual machine, and you get some benefits that way,
like ease of portability.  However, in doing so, you also tie the
protocol to a particular computational framework.

In practice, this isn't a problem, but I do think it's generally a
better idea to keep protocols independent from the things that implement
them.

Specifically for esolangs, which come in all manner of computational
frameworks, making the protocol independent from the language becomes
that much more significant.

Esolangs have very little in common, but they almost universally have a
concept of output and input.  So, my best guess (tho' it's far from
obvious) is that I/O is where it would be best to interface them to ESO.

Any particular implementation of ESO could still be done with a virtual
machine, of course, but why should ESO itself care one way or the other.

There's an ENSI spec that "addresses" ESO but it's quintessentially
ENSIesque (naturally.)  Someone will have to sit down and write an
actual draft spec if we want something tractable to ever materialize.
I figure it'd probably end up as a big table of escape codes that can be
sent to the output and what the program can expect to happen and/or to
arrive back on the input when it sends them, with so many jolly good
useful functionalities that will likely never be fully implemented.

> 3) The language dies (Pascal)

Languages never die, they just change names.  Pascal is now known as
Delphi.  :)  I forget what it's called at the moment, some really slick
new name now, but for crying out loud, M[UMPS] is still around!  Scary.

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Wed Apr 23 22:27:52 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 198Psu-000JKT-00; Wed, 23 Apr 2003 22:26:24 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 23 Apr 2003 22:26:09 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd4mo1so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 198PsZ-000JJs-00
	for lang@esoteric.sange.fi; Wed, 23 Apr 2003 22:26:03 +0300
Received: from pd3mr1so.prod.shaw.ca (pd3mr1so-ser.prod.shaw.ca [10.0.141.177])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HDT00KMW9ZCJE@l-daemon> for lang@esoteric.sange.fi; Wed,
 23 Apr 2003 13:26:00 -0600 (MDT)
Received: from pn2ml8so.prod.shaw.ca
 (pn2ml8so-qfe0.prod.shaw.ca [10.0.121.152]) by l-daemon
 (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HDT00L949ZCKT@l-daemon> for lang@esoteric.sange.fi; Wed,
 23 Apr 2003 13:26:00 -0600 (MDT)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with SMTP id <0HDT0081P9ZCC1@l-daemon> for lang@esoteric.sange.fi; Wed,
 23 Apr 2003 13:26:00 -0600 (MDT)
Date: Wed, 23 Apr 2003 14:26:18 -0500
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] [bf] pibfi-2003.0423
To: lang@esoteric.sange.fi
Message-id: <20030423142618.396fd0c0.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
X-Spam-Score: 0.0 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *198PsZ-000JJs-00*mHsMxwNPnMM*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *198Psu-000JKT-00*mPpwr2fsh.A*

http://www.catseye.mb.ca/projects/pibfi-+

I decided simple EOL conversion just wasn't enough for something aiming
to be the Platonic Ideal of Brainfuck interpreters.  So, I introduced an
arbitrary mapping mechanism.  Instead of the -bfeol and -oseol options,
you can now say:

  erl -noshell -xlatio #10=#nl -run pibfi run foo.bf

This means, whenever the Brainfuck program outputs character #10, the
local OS's EOL convention is put on the output; and that whenever the
local OS's EOL convention arrives at the input, the Brainfuck program
sees character #10.

You can translate more than one character, and more than one set of
strings, like so:

  erl -noshell -xlatio bear=Bear,BEAR=Bear -run pibfi run foo.bf

You can also establish a one-way mapping (or two one-way mappings that
are not inversions of each other) with -xlatin and -xlatout.

The possibilities abound: translate terminal control codes (e.g.
formfeed to VT100 clear-screen), character sets (ASCII to EBCDIC),
simple crypto (rot13), etc etc.

Other minor changes: -maxin, -minin, and -wrapin are now implemented,
and all 5(!) of the processes involved (1 for interpreter, 2 for i/o
translation, 1 for input handling and 1 for the rest of the i/o
subsystem) are supervised, to centralize error handling, which makes the
code a bit clearer.  (The i/o subsystem is *still* a holy mess, though.)

Todo: tie up loose ends; substantially improve parser, interpreter, and
error reports; allow for different backends for the tape (e.g. optimized
when finite, on-disk when memory is at a premium, distributed when too
large to comfortably fit on a single computer, etc.)

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Fri Apr 25 09:59:01 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 198x9A-000Lyo-00; Fri, 25 Apr 2003 09:57:24 +0300
Received: with LISTAR (v0.129a; list lang); Fri, 25 Apr 2003 09:57:10 +0300 (EEST)
Received: from pop.hevanet.com ([198.5.254.15])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 198x8p-000Ly4-00
	for lang@esoteric.sange.fi; Fri, 25 Apr 2003 09:57:03 +0300
Received: from [130.94.161.238] (130-94-161-238-dsl.hevanet.com [130.94.161.238])
	by pop.hevanet.com (8.11.6p2/8.11.6p2) with ESMTP id h3P6uwj56903
	for <lang@esoteric.sange.fi>; Thu, 24 Apr 2003 23:56:58 -0700 (PDT)
Mime-Version: 1.0
X-Sender: cristofd@pop.hevanet.com
Message-Id: <a05111b10bace87eb5885@[130.94.161.238]>
In-Reply-To: <20030423142618.396fd0c0.cpressey@catseye.mb.ca>
References: <20030423142618.396fd0c0.cpressey@catseye.mb.ca>
Date: Thu, 24 Apr 2003 23:56:57 -0700
To: lang@esoteric.sange.fi
From: "Daniel." <cristofd@hevanet.com>
Subject: [lang] Re: [bf] pibfi-2003.0423
Content-Type: text/plain; charset="iso-8859-1" ; format="flowed"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -9.6 (---------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *198x8p-000Ly4-00*P6sl9fKpRM.*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cristofd@hevanet.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *198x9A-000Lyo-00*vXbiUdCWSog*

>I decided simple EOL conversion just wasn't enough for something aiming
>to be the Platonic Ideal of Brainfuck interpreters.  So, I introduced an
>arbitrary mapping mechanism.  Instead of the -bfeol and -oseol options,
>you can now say:
>
>   erl -noshell -xlatio #10=3D#nl -run pibfi run foo.bf
>
>This means, whenever the Brainfuck program outputs character #10, the
>local OS's EOL convention is put on the output; and that whenever the
>local OS's EOL convention arrives at the input, the Brainfuck program
>sees character #10.

Wait, you mean it doesn't do that by default anymore? I wouldn't call 
it ideal if you have to type special options to run M=FCller's original 
examples, not to mention most later programs that use EOL. Allowing 
the use of nonportable dialects is fine, but encouraging them seems 
like a bad move...
-Daniel Cristofani.
-- 
>>>++[<++++++++[<[<++>-]>>[>>]+>>+[-[->>+<<<[<[<<]<+>]>[>[>>]]]<[>>>>[-<<[-]=
]
+<[<+<]]>[<]+<<]<[>+<-]>>-]<.[-]>>]http://www.hevanet.com/cristofd/brainfuck=
/

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Fri Apr 25 12:28:26 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 198zUq-0004Ar-00; Fri, 25 Apr 2003 12:27:56 +0300
Received: with LISTAR (v0.129a; list lang); Fri, 25 Apr 2003 12:27:42 +0300 (EEST)
Received: from post.it.helsinki.fi ([128.214.205.24])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 198zUW-0004AI-00
	for lang@esoteric.sange.fi; Fri, 25 Apr 2003 12:27:36 +0300
Received: from xandru.it.helsinki.fi (mail@xandru.it.helsinki.fi [128.214.38.174])
	by post.it.helsinki.fi (8.12.9/8.12.2-SPAMmers-sod-off) with ESMTP id h3P9Ra5X017926
	for <lang@esoteric.sange.fi>; Fri, 25 Apr 2003 12:27:36 +0300 (EEST)
Received: from pkalliok by xandru.it.helsinki.fi with local (Exim 3.36 #1 (Debian))
	id 198zQP-0006My-00
	for <lang@esoteric.sange.fi>; Fri, 25 Apr 2003 12:23:21 +0300
Date: Fri, 25 Apr 2003 12:23:21 +0300
From: Panu Kalliokoski <pkalliok@cs.helsinki.fi>
To: lang@esoteric.sange.fi
Subject: [lang] Re: Homespring
Message-ID: <20030425092320.GD24036@ling.helsinki.fi>
Mail-Followup-To: lang@esoteric.sange.fi
References: <1050358816.3891.128.camel@boxofstone>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <1050358816.3891.128.camel@boxofstone>
User-Agent: Mutt/1.5.3i
Sender: Panu Kalliokoski <pkalliok@xandru.it.helsinki.fi>
X-Spam-Score: -29.3 (-----------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *198zUW-0004AI-00*Ihs41E9kzAI*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.helsinki.fi
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *198zUq-0004Ar-00*7o19NIY/bjk*

On Mon, Apr 14, 2003 at 06:20:16PM -0400, Jeff Binder wrote:
> http://home.fuse.net/obvious/hs.html

Seems very nice, though a little bit hard to learn because of the great
number of different components.  This would make again another great
visualisable program execution environment... :)

-- 
personal contact: atehwa@iki.fi, +35841 5323835
work contact: pkalliok@ling.helsinki.fi, +35850 3678003
kotisivu (henkkoht):	http://www.iki.fi/atehwa/
homepage (technical):	http://sange.fi/~atehwa/

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Fri Apr 25 12:46:28 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 198zma-0005C1-00; Fri, 25 Apr 2003 12:46:16 +0300
Received: with LISTAR (v0.129a; list lang); Fri, 25 Apr 2003 12:46:01 +0300 (EEST)
Received: from post.it.helsinki.fi ([128.214.205.24])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 198zmG-0005BV-00
	for lang@esoteric.sange.fi; Fri, 25 Apr 2003 12:45:56 +0300
Received: from xandru.it.helsinki.fi (mail@xandru.it.helsinki.fi [128.214.38.174])
	by post.it.helsinki.fi (8.12.9/8.12.2-SPAMmers-sod-off) with ESMTP id h3P9ju5X026078
	for <lang@esoteric.sange.fi>; Fri, 25 Apr 2003 12:45:56 +0300 (EEST)
Received: from pkalliok by xandru.it.helsinki.fi with local (Exim 3.36 #1 (Debian))
	id 198zi8-0006Ne-00
	for <lang@esoteric.sange.fi>; Fri, 25 Apr 2003 12:41:40 +0300
Date: Fri, 25 Apr 2003 12:41:40 +0300
From: Panu Kalliokoski <pkalliok@cs.helsinki.fi>
To: lang@esoteric.sange.fi
Subject: [lang] Re: Call for participation: Cbvm
Message-ID: <20030425094140.GF24036@ling.helsinki.fi>
Mail-Followup-To: lang@esoteric.sange.fi
References: <20030415053832.GA24578@ling.helsinki.fi> <20030422015208.5f0d6cf7.cpressey@catseye.mb.ca>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20030422015208.5f0d6cf7.cpressey@catseye.mb.ca>
User-Agent: Mutt/1.5.3i
Sender: Panu Kalliokoski <pkalliok@xandru.it.helsinki.fi>
X-Spam-Score: -33.1 (---------------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *198zmG-0005BV-00*K6NNopMIuNY*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.helsinki.fi
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *198zma-0005C1-00*ZIfTfLGHlgU*

On Tue, Apr 22, 2003 at 01:52:08AM -0500, Chris Pressey wrote:
> > fine without); they are included in level I just because they are not
> > reducible to level I.  (A note to Chris: this doesn't mean that a Cbvm
> > evaluator built in level-I Cbvm could not implement them - it could.)
> Hmmm?  My contention isn't that asynchronous I/O is impossible in this
> sort of framework, it's that it's unnatural - and your choice to make it
> irreducible would seem to reinforce that belief rather than challenging
> it ;)

Interesting, because I had got the picture that you had the opinion that
the world is parallel and asynchronous to its roots, and that this is
the reason why you think systems without real concurrency are unnatural
to model the world.  However here, you admit that the whole of the
asynchronous model can be emulated by synchronous environments.  So
there must have been another reason why you think asynchronous I/O is
unnatural, and I must have missed it...

> > - An obvious basis for ESO.
> I'm glad you find it obvious; you must have a very large brain. 

It's somewhat akin to the idea of using forth in embedded systems, just
that Cbvm can be used more easily as a backend for most (esoteric)
languages.

> Personally, I don't even find it obvious that ESO needs a virtual
> machine as its basis.  Operating systems aren't programming languages.

I agree.  Although virtual machines and programming languages have
actually quite little in common.  Besides, each OS is (among other
things) an ABI and an API.  It's quite hard to tell ABI's apart from
virtual machines, and it's quite hard to tell API's apart from
programming languages...

BTW, seeing that not many people have the time / interest to
participate, I think this will continue to be my own nice widdle
project...

-- 
personal contact: atehwa@iki.fi, +35841 5323835
work contact: pkalliok@ling.helsinki.fi, +35850 3678003
kotisivu (henkkoht):	http://www.iki.fi/atehwa/
homepage (technical):	http://sange.fi/~atehwa/

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Sat Apr 26 02:48:00 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 199CuO-000Lz7-00; Sat, 26 Apr 2003 02:47:12 +0300
Received: with LISTAR (v0.129a; list lang); Sat, 26 Apr 2003 02:46:58 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd5mo3so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 199Cu4-000Ly1-00
	for lang@esoteric.sange.fi; Sat, 26 Apr 2003 02:46:53 +0300
Received: from pd6mr1so.prod.shaw.ca
 (pd6mr1so-qfe3.prod.shaw.ca [10.0.141.216]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HDX00NNGB944F@l-daemon> for lang@esoteric.sange.fi; Fri,
 25 Apr 2003 17:43:52 -0600 (MDT)
Received: from pn2ml10so.prod.shaw.ca
 (pn2ml10so-qfe0.prod.shaw.ca [10.0.121.80])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HDX00HLEB94JC@l-daemon> for lang@esoteric.sange.fi; Fri,
 25 Apr 2003 17:43:52 -0600 (MDT)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with SMTP id <0HDX001Y9B93JC@l-daemon> for lang@esoteric.sange.fi; Fri,
 25 Apr 2003 17:43:52 -0600 (MDT)
Date: Fri, 25 Apr 2003 18:44:14 -0500
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: Call for participation: Cbvm
In-reply-to: <20030425094140.GF24036@ling.helsinki.fi>
To: lang@esoteric.sange.fi
Message-id: <20030425184414.2038d996.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
References: <20030415053832.GA24578@ling.helsinki.fi>
 <20030422015208.5f0d6cf7.cpressey@catseye.mb.ca>
 <20030425094140.GF24036@ling.helsinki.fi>
X-Spam-Score: -26.7 (--------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *199Cu4-000Ly1-00*SdR2Qu.h6FI*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *199CuO-000Lz7-00*pNZbqhsT.Bk*

On Fri, 25 Apr 2003 12:41:40 +0300
Panu Kalliokoski <pkalliok@cs.helsinki.fi> wrote:

> On Tue, Apr 22, 2003 at 01:52:08AM -0500, Chris Pressey wrote:
> > Hmmm?  My contention isn't that asynchronous I/O is impossible in
> > this sort of framework, it's that it's unnatural - and your choice
> > to make it irreducible would seem to reinforce that belief rather
> > than challenging it ;)
> 
> Interesting, because I had got the picture that you had the opinion
> that the world is parallel and asynchronous to its roots, and that
> this is the reason why you think systems without real concurrency are
> unnatural to model the world.

The world waits for no man.  How else can I put it?

> However here, you admit that the whole of the
> asynchronous model can be emulated by synchronous environments.

It would be folly to say that they *cannot* emulate each other, so of
course I admit that.  But the question is not "can they".  The question
is, "do they".

But I look around me and I see things going on completely independently
of each other.  The world as a whole does not turn in lock step.

In a synchronous environment, one thing can stop everything else.

I've never seen that happen in the real world at large, so I have no
reason to believe that nature is anything other than asynchronous.

>  So
> there must have been another reason why you think asynchronous I/O is
> unnatural, and I must have missed it...

I think it's an unnatural fit with some languages.  It's worst when the
evaluation order of the program does not match well the order of the
I/O.  It can require a synthetic and somewhat contrived model for I/O.
That's really all I'm saying.

> > > - An obvious basis for ESO.
> > I'm glad you find it obvious; you must have a very large brain. 
> 
> It's somewhat akin to the idea of using forth in embedded systems,
> just that Cbvm can be used more easily as a backend for most
> (esoteric) languages.

I have no doubt it would be a fine platform for implementing ESO on.  At
the time I didn't realize that that's probably what you meant by
'obvious basis.'

> > Personally, I don't even find it obvious that ESO needs a virtual
> > machine as its basis.  Operating systems aren't programming
> > languages.
> 
> I agree.  Although virtual machines and programming languages have
> actually quite little in common.

Well, besides the fact that every virtual machine is also a programming
language.  Except for the ones where computation is defined as a system
service, I suppose.

> Besides, each OS is (among other
> things) an ABI and an API.  It's quite hard to tell ABI's apart from
> virtual machines, and it's quite hard to tell API's apart from
> programming languages...

Most ABI's and API's don't include basic computational facilities.
There's absolutely nothing saying they couldn't, though.

> BTW, seeing that not many people have the time / interest to
> participate, I think this will continue to be my own nice widdle
> project...

It sounds like you have a good grasp of the details, and if it is as
nice as you say it is, it should be fun.

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Sat Apr 26 02:57:46 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 199D3a-000MZi-00; Sat, 26 Apr 2003 02:56:42 +0300
Received: with LISTAR (v0.129a; list lang); Sat, 26 Apr 2003 02:56:28 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd3mo3so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 199D3H-000MZD-00
	for lang@esoteric.sange.fi; Sat, 26 Apr 2003 02:56:23 +0300
Received: from pd4mr3so.prod.shaw.ca
 (pd4mr3so-qfe3.prod.shaw.ca [10.0.141.214]) by l-daemon
 (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HDX008QWBTYS5@l-daemon> for lang@esoteric.sange.fi; Fri,
 25 Apr 2003 17:56:22 -0600 (MDT)
Received: from pn2ml10so.prod.shaw.ca
 (pn2ml10so-qfe0.prod.shaw.ca [10.0.121.80])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.6 (built Apr 26 2002))
 with ESMTP id <0HDX00IJDBTYFM@l-daemon> for lang@esoteric.sange.fi; Fri,
 25 Apr 2003 17:56:22 -0600 (MDT)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with SMTP id <0HDX0017UBTXTW@l-daemon> for lang@esoteric.sange.fi; Fri,
 25 Apr 2003 17:56:22 -0600 (MDT)
Date: Fri, 25 Apr 2003 18:56:45 -0500
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: [bf] pibfi-2003.0423
In-reply-to: <a05111b10bace87eb5885@[130.94.161.238]>
To: lang@esoteric.sange.fi
Message-id: <20030425185645.29badbb9.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=ISO-8859-1
Content-transfer-encoding: quoted-printable
References: <20030423142618.396fd0c0.cpressey@catseye.mb.ca>
 <a05111b10bace87eb5885@[130.94.161.238]>
X-Spam-Score: -26.1 (--------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *199D3H-000MZD-00*q21AdrSBdC6*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *199D3a-000MZi-00*3plNAPOZfvc*

On Thu, 24 Apr 2003 23:56:57 -0700
"Daniel." <cristofd@hevanet.com> wrote:

> >I decided simple EOL conversion just wasn't enough for something
> >aiming to be the Platonic Ideal of Brainfuck interpreters.  So, I
> >introduced an arbitrary mapping mechanism.  Instead of the -bfeol and
> >-oseol options, you can now say:
> >
> >   erl -noshell -xlatio #10=3D#nl -run pibfi run foo.bf
> >
> >This means, whenever the Brainfuck program outputs character #10, the
> >local OS's EOL convention is put on the output; and that whenever the
> >local OS's EOL convention arrives at the input, the Brainfuck program
> >sees character #10.
>=20
> Wait, you mean it doesn't do that by default anymore? I wouldn't call=20
> it ideal if you have to type special options to run M=FCller's original=20
> examples, not to mention most later programs that use EOL. Allowing=20
> the use of nonportable dialects is fine, but encouraging them seems=20
> like a bad move...
> -Daniel Cristofani.

Sorry, that was an oversight on my part (one of the loose ends I alluded
to.)  I ran into it last night, but thanks for noticing it and keeping
me honest.  I didn't have any way to turn it off, so I didn't include it
as default.  I now have a way to turn it off, so #10=3D#nl is the default.

Actually, it's been complicated by my discovery that Erlang is like
Brainf*ck this way (#10 is EOL on all platforms.)  So even without a
translation map you should get the expected behaviour.  Not sure what
I'm going to do about it, use raw I/O maybe.

Either way, the next version (hopefully sometime today) will address
this issue better, along with many of the other issues you mention on
your page of recommendations.

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Sun Apr 27 03:35:52 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 199a7g-000HBz-00; Sun, 27 Apr 2003 03:34:28 +0300
Received: with LISTAR (v0.129a; list lang); Sun, 27 Apr 2003 03:34:14 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd6mo2so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 199a7I-000HBC-00
	for lang@esoteric.sange.fi; Sun, 27 Apr 2003 03:34:04 +0300
Received: from pd5mr3so.prod.shaw.ca
 (pd5mr3so-qfe3.prod.shaw.ca [10.0.141.144]) by l-daemon
 (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with ESMTP id <0HDZ00JHL81LHM@l-daemon> for lang@esoteric.sange.fi; Sat,
 26 Apr 2003 18:29:45 -0600 (MDT)
Received: from pn2ml8so.prod.shaw.ca
 (pn2ml8so-qfe0.prod.shaw.ca [10.0.121.152]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HDZ001HT81LPJ@l-daemon> for lang@esoteric.sange.fi; Sat,
 26 Apr 2003 18:29:45 -0600 (MDT)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.1 HotFix 0.8 (built May 12 2002))
 with SMTP id <0HDZ003CH81KI1@l-daemon> for lang@esoteric.sange.fi; Sat,
 26 Apr 2003 18:29:45 -0600 (MDT)
Date: Sat, 26 Apr 2003 19:30:10 -0500
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: [bf] pibfi-2003.0426
In-reply-to: <20030423142618.396fd0c0.cpressey@catseye.mb.ca>
To: lang@esoteric.sange.fi
Message-id: <20030426193010.04353493.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
References: <20030423142618.396fd0c0.cpressey@catseye.mb.ca>
X-Spam-Score: -9.9 (---------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *199a7I-000HBC-00*Co5pm.0lzCg*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *199a7g-000HBz-00*8F8s9SV55W2*

> http://www.catseye.mb.ca/projects/pibfi-+

http://www.catseye.mb.ca/projects/pibfi-2003.0426/SCREENSHOT

2003.0426 contains the following changes.

#10=#nl is the default translation.  -xlatio with no argument selects no
translation (binary I/O.)  Because of the way Erlang deals with EOL (on
a tty, on input, an LF; on output, either LF or the local EOL
convention; on a file, no translation is done,) actual binary I/O is
only done in combination with the -infile and -outfile options (below.)
Trying to do binary I/O to the tty will still show the Brainfuck program
what it properly expects (LF for incoming and outgoing newlines.)

An obvious and simple optimization is used, and is default.  It can be
disabled with -optimize 0.

The source code is by default stripped of any non-Brainfuck
instructions.  To prevent it from stripping out characters X, Y, and Z,
use -dontstrip XYZ.  Use -dontstrip without any arguments to prevent
stripping entirely.

A "status dump" command is included, defaults to #.  But is by default
stripped out, so you need to specify -dontstrip # to use it.  Also, the
switch -autopsy generates a status report after the program terminates
normally.  Status report are always generated whenever errors occur.

"Here-doc" (input embedded in the program source after a |) can be
extracted by giving the -heredoc option by itself.  To use a marker
besides |, say X, use -heredoc X.  Note that this option only extracts
the here-doc, it doesn't imply you want to use it as input.  For that,
you must also specify -infile heredoc.  -infile can also be tty or a
filename, as can -outfile.  The default for both is tty.

-eof stop terminates the Brainfuck program normally when input past
end of file is attempted.  This is more graceful than -eof halt.

If there's anything else, I can't remember what it is at the moment.

There are still some bugs in the xlat code, apparently, so it should be
considered experimental for purposes besides EOL conversion.  EOL
conversion was tested (cat2.b) on FreeBSD and Windows and it seems to
work fine, both interactively and from a file.

If any of these defaults seem out of line, or if you have any other
suggestions, please don't hesitate to tell me.

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Mon Apr 28 23:26:35 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19AFAX-000Hig-00; Mon, 28 Apr 2003 23:24:10 +0300
Received: with LISTAR (v0.129a; list lang); Mon, 28 Apr 2003 23:23:55 +0300 (EEST)
Received: from pop.hevanet.com ([198.5.254.15])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19AFAD-000Hhz-00
	for lang@esoteric.sange.fi; Mon, 28 Apr 2003 23:23:49 +0300
Received: from [130.94.161.238] (130-94-161-238-dsl.hevanet.com [130.94.161.238])
	by pop.hevanet.com (8.11.6p2/8.11.6p2) with ESMTP id h3SKNjQ52117
	for <lang@esoteric.sange.fi>; Mon, 28 Apr 2003 13:23:45 -0700 (PDT)
Mime-Version: 1.0
X-Sender: cristofd@pop.hevanet.com
Message-Id: <a05111b03bad33a8b6322@[130.94.161.238]>
In-Reply-To: <20030426193010.04353493.cpressey@catseye.mb.ca>
References: <20030423142618.396fd0c0.cpressey@catseye.mb.ca>
 <20030426193010.04353493.cpressey@catseye.mb.ca>
Date: Mon, 28 Apr 2003 13:23:42 -0700
To: lang@esoteric.sange.fi
From: "Daniel." <cristofd@hevanet.com>
Subject: [lang] Re: [bf] pibfi-2003.0426
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
X-Spam-Score: -9.9 (---------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19AFAD-000Hhz-00*vXNZ.2dcy8E*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cristofd@hevanet.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19AFAX-000Hig-00*LuHNJzaW2IY*

>2003.0426 contains the following changes.

This is all looking very good indeed. I'd use it myself if Erlang 
were available for the sinking ship that is Mac OS 9.

>"Here-doc" (input embedded in the program source after a |) can be
>extracted by giving the -heredoc option by itself.

This is similar enough to the way Faase's brainfuck interpreter in 
brainfuck, and mine, handle input that I might perhaps use ! instead 
of | by default.

-Daniel.
-- 
>>>++[<++++++++[<[<++>-]>>[>>]+>>+[-[->>+<<<[<[<<]<+>]>[>[>>]]]<[>>>>[-<<[-]]
+<[<+<]]>[<]+<<]<[>+<-]>>-]<.[-]>>]http://www.hevanet.com/cristofd/brainfuck/

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Sun May 04 01:12:11 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19C5DD-000Lvh-00; Sun, 04 May 2003 01:10:31 +0300
Received: with LISTAR (v0.129a; list lang); Sun, 04 May 2003 01:10:17 +0300 (EEST)
Received: from bay7-f19.bay7.hotmail.com ([64.4.11.19] helo=hotmail.com)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19C5Ct-000LtU-00
	for lang@esoteric.sange.fi; Sun, 04 May 2003 01:10:11 +0300
Received: from mail pickup service by hotmail.com with Microsoft SMTPSVC;
	 Sat, 3 May 2003 15:09:38 -0700
Received: from 12.208.170.128 by by7fd.bay7.hotmail.msn.com with HTTP;
	Sat, 03 May 2003 22:09:38 GMT
X-Originating-IP: [12.208.170.128]
X-Originating-Email: [lmtbl@hotmail.com]
From: "Tristan Parker" <lmtbl@hotmail.com>
To: lang@esoteric.sange.fi
Bcc: 
Subject: [lang] Homespring
Date: Sat, 03 May 2003 15:09:38 -0700
Mime-Version: 1.0
Content-Type: text/plain; format=flowed
Message-ID: <BAY7-F19mtBHP14vigs00010cdb@hotmail.com>
X-OriginalArrivalTime: 03 May 2003 22:09:38.0888 (UTC) FILETIME=[B07CFC80:01C311C0]
X-Spam-Score: 0.0 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19C5Ct-000LtU-00*GrmGYeXLzRY*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: lmtbl@hotmail.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19C5DD-000Lvh-00*BDeK0LvEwiM*

I've been working for a while on Homespring, and it looks like if you beat 
it viciously enough it might be Turing Complete. Standing firm in this 
conviction, I have taken one of the first steps. Unfortunately, it's such a 
little teeny tiny step that I don't even know if it was in the right 
direction.

Can anyone check out the beginnings of this Unary Adder and see if they can 
make it work? The basic MO is "separate out all of the ones, and remove the 
plus, then output the ones untill they are all output."

                                        snowmelt
                                       /
universe                         marshy
        \                       /
         split            marshy              +
              \          /                   /
               evaporates                 net
                         \               /
                          upstream switch
                                         \
                                          youth fountain
                                                        \
                                                         bear
                                                             \
                                                              time
                                                                  \
                                                                   hydro 
power
                                                                             
  \
                                                                             
   1

universe split evaporates marshy marshy snowmelt    upstream. switch youth. 
fountain
bear time hydro. power 1


>52*"moc.liamtoh@lbtml"> #, :# _v_ #: ,# <"lmtbl@hotmail.com"*25<
^                        p*48">">"<"84*p                        ^




_________________________________________________________________
The new MSN 8: advanced junk mail protection and 2 months FREE*  
http://join.msn.com/?page=features/junkmail


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue May 06 09:29:13 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19CvvP-0008jA-00; Tue, 06 May 2003 09:27:39 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 06 May 2003 09:27:25 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd5mo2so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19Cvv4-0008iW-00
	for lang@esoteric.sange.fi; Tue, 06 May 2003 09:27:18 +0300
Received: from pd2mr1so.prod.shaw.ca (pd2mr1so-ser.prod.shaw.ca [10.0.141.110])
 by l-daemon (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HEG00M2BCLF1G@l-daemon> for lang@esoteric.sange.fi; Tue,
 06 May 2003 00:27:15 -0600 (MDT)
Received: from pn2ml4so.prod.shaw.ca
 (pn2ml4so-qfe0.prod.shaw.ca [10.0.121.148]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HEG00BKGCLF1B@l-daemon> for lang@esoteric.sange.fi; Tue,
 06 May 2003 00:27:15 -0600 (MDT)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with SMTP id <0HEG00B9LCLENT@l-daemon> for lang@esoteric.sange.fi; Tue,
 06 May 2003 00:27:15 -0600 (MDT)
Date: Tue, 06 May 2003 01:28:00 -0500
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] [bf] pibfi-2003.0505
In-reply-to: <a05111b03bad33a8b6322@[130.94.161.238]>
To: lang@esoteric.sange.fi
Message-id: <20030506012800.563d4392.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
References: <20030423142618.396fd0c0.cpressey@catseye.mb.ca>
 <20030426193010.04353493.cpressey@catseye.mb.ca>
 <a05111b03bad33a8b6322@[130.94.161.238]>
X-Spam-Score: -27.5 (---------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19Cvv4-0008iW-00*GWUwweAiwTo*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19CvvP-0008jA-00*MC8ahEa7tig*

On Mon, 28 Apr 2003 13:23:42 -0700
"Daniel." <cristofd@hevanet.com> wrote:

> This is similar enough to the way Faase's brainfuck interpreter in 
> brainfuck, and mine, handle input that I might perhaps use ! instead 
> of | by default.

OK - I probably misread your page when I selected | :)  Now when you
give -heredoc without specifying a character, it uses !.  Since you can
specify any character, it makes sense for the default to be whatever
most sources out there use.

I haven't had much time to work on it, but there's some more useless
stuff in it now.  You can say e.g. -statusevery 5m to get a status
report every five minutes.  And if the filename you give on the command
line starts with "http://", it assumes it's a URL and fetches it.

You can specify different backends for the tape - dict, dynarray, ETS,
and tuple, but ETS beats them all in the general case so it's the
default.  (The only case I've found where something beats ETS is using a
tuple when you have a very small finite tape, say ten or twenty cells.)
Although ETS, dict, and dynarray tapes have theoretically no limit to
the number of cells they can hold, practically speaking, after a couple
of hundred thousand cells, depending on the size of memory, Swapping
Badness will occur.  For this reason, the next step will be to write a
tape backend that uses disk storage - multiple files, for several
reasons (most importantly to overcome the 4 gigabyte limit that a
typical 32-bit filesystem API imposes.)  Much slower of course, but
that's the price you pay for scaleability.  The step after that would be
to spread the files first across multiple disks, then of course multiple
computers.  There's something truly absurd about setting up a cluster of
machines merely to accomodate a really, really long Brainfuck tape...

Also, there is no bug in the xlat logic (at least not the one that I
thought there was - it behaves as expected for all the test cases I've
thrown at it so far.)  It's just that the -xlatio option was giving
confusing and non-intuitive results, so I took it out.  This forces you
to specify -xlatin and -xlatout seperately, which is actually better
IMO, since it makes you think about what results you actually want (it's
a subtler matter than might at first be assumed.)

I've found http://www.people.fas.harvard.edu/~jafowler/pi/pi.b to be a
really good test program.  It's written in BF16 and uses (for whatever
reason) LF CR as it's end-of-line marker.  pibfi runs it fine.  On this
machine, I think it's an 800MHz 686, running FreeBSD, it runs it in just
under two and a half hours, averaging 185,000 Brainfuck instructions per
second.

I've considered adding an -xlatsrc option.  I've also considered adding
an option to generate code.  The former stretches the definition of
'Brainfuck', the latter stretches the definition of 'interpreter', so I
haven't exactly rushed to implement either of them.  Still, few would
say that optimization is particularly Platonic, and it's in there, so
compiling and syntax-mangling (e.g. Ook.#32Ook.=+ etc) probably will be
someday too...

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue May 06 22:43:33 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19D8Kq-0001l9-00; Tue, 06 May 2003 22:42:44 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 06 May 2003 22:42:30 +0300 (EEST)
Received: from marcie.netcarrier.net ([216.178.72.21])
	by oiva.sange.fi with smtp (Exim 4.12)
	id 19D8KW-0001j0-00
	for lang@esoteric.sange.fi; Tue, 06 May 2003 22:42:24 +0300
Received: (qmail 89209 invoked from network); 6 May 2003 19:41:47 -0000
Received: from user216-178-88-142.netcarrier.net (HELO easypages) (216.178.88.142)
  by marcie.netcarrier.net with SMTP; 6 May 2003 19:41:47 -0000
Message-ID: <001c01c31407$7ba14900$8e58b2d8@com.easypages.com>
From: "Joe Strom" <jstrom@netcarrier.com>
To: "_LIST esoteric" <lang@esoteric.sange.fi>
Subject: [lang] New Language: BDAMD
Date: Tue, 6 May 2003 15:40:41 -0400
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_0019_01C313E5.D95B8C80"
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 5.00.2615.200
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200
X-Spam-Score: 0.7 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19D8KW-0001j0-00*.R0pRu9topg*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: jstrom@netcarrier.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19D8Kq-0001l9-00*NZBga40ZP0Y*

This is a multi-part message in MIME format.

------=_NextPart_000_0019_01C313E5.D95B8C80
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

I've finally taken the time to present BDAMD:
The Basic Demonic Asinine Multi-Dimensional Programming Language

http://spots.flatland.com/jms/bdamd.html

BDAMD uses two arrays of the same dimensions, one for the code, one for =
data.  Currently, the interpreter only is written for two-dimensional =
programs.  I left in a few unneccessary commands (all those that edit =
ptr B)  It is recommended that you have a hex editor, as none of the =
commands yet have character names.

For higher level programs, more bits must be added to support all the =
different movement commands.  I hope to finallize specifics for working =
with higher (or lower) dimensional programs.

Until then, please don't try and kill me, (its that guy who wrote BF's =
fault!)

js

------=_NextPart_000_0019_01C313E5.D95B8C80
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Diso-8859-1" =
http-equiv=3DContent-Type>
<META content=3D"MSHTML 5.00.2614.3500" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>I've finally taken the time to present=20
BDAMD:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>The Basic Demonic Asinine =
Multi-Dimensional=20
Programming Language</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><A=20
href=3D"http://spots.flatland.com/jms/bdamd.html">http://spots.flatland.c=
om/jms/bdamd.html</A></FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>BDAMD uses two arrays of the same =
dimensions, one=20
for the code, one for data.&nbsp; Currently, the interpreter only is =
written for=20
two-dimensional programs.&nbsp; I left in a few unneccessary commands =
(all those=20
that edit ptr B)&nbsp; It is recommended that you have a hex editor, as =
none of=20
the commands yet have character names.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>For higher level programs, more bits =
must be added=20
to support all the different movement commands.&nbsp; I hope to =
finallize=20
specifics for working with higher (or lower) dimensional =
programs.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Until then, please don't try and kill =
me, (its that=20
guy who wrote BF's fault!)</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>js</FONT></DIV></BODY></HTML>

------=_NextPart_000_0019_01C313E5.D95B8C80--


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Wed May 07 00:50:37 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19DAKG-00082t-00; Wed, 07 May 2003 00:50:16 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 07 May 2003 00:50:01 +0300 (EEST)
Received: from pop.hevanet.com ([198.5.254.15])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19DAJv-000828-00
	for lang@esoteric.sange.fi; Wed, 07 May 2003 00:49:55 +0300
Received: from [130.94.161.238] (130-94-161-238-dsl.hevanet.com [130.94.161.238])
	by pop.hevanet.com (8.11.6p2/8.11.6p2) with ESMTP id h46LnqY13507
	for <lang@esoteric.sange.fi>; Tue, 6 May 2003 14:49:52 -0700 (PDT)
Mime-Version: 1.0
X-Sender: cristofd@pop.hevanet.com
Message-Id: <a05111b00baddc2566cb1@[130.94.161.238]>
In-Reply-To: <20030506012800.563d4392.cpressey@catseye.mb.ca>
References: <20030423142618.396fd0c0.cpressey@catseye.mb.ca>
 <20030426193010.04353493.cpressey@catseye.mb.ca>
 <a05111b03bad33a8b6322@[130.94.161.238]>
 <20030506012800.563d4392.cpressey@catseye.mb.ca>
Date: Tue, 6 May 2003 14:49:52 -0700
To: lang@esoteric.sange.fi
From: "Daniel." <cristofd@hevanet.com>
Subject: [lang] Re: [bf] pibfi-2003.0505
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
X-Spam-Score: -15.5 (---------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19DAJv-000828-00*aPJAyLZbE3I*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cristofd@hevanet.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19DAKG-00082t-00*Ln5h9tfp352*

>OK - I probably misread your page when I selected | :)  Now when you
>give -heredoc without specifying a character, it uses !.  Since you can
>specify any character, it makes sense for the default to be whatever
>most sources out there use.

I agree. Specially since in this instance, "most sources" coincides 
with the other possible considerations, like "earliest sources" and 
"most-widely-known sources".

>I haven't had much time to work on it, but there's some more useless
>stuff in it now.  You can say e.g. -statusevery 5m to get a status
>report every five minutes.  And if the filename you give on the command
>line starts with "http://", it assumes it's a URL and fetches it.

Cool.

>There's something truly absurd about setting up a cluster of
>machines merely to accomodate a really, really long Brainfuck tape...

:) especially since in any given week, all but one or two will be idle...

>I've found http://www.people.fas.harvard.edu/~jafowler/pi/pi.b to be a
>really good test program.  It's written in BF16 and uses (for whatever
>reason) LF CR as it's end-of-line marker.  pibfi runs it fine. On this
>machine, I think it's an 800MHz 686, running FreeBSD, it runs it in just
>under two and a half hours, averaging 185,000 Brainfuck instructions per
>second.

So about 4,000 cycles/instruction, not so bad for an interpreter in a 
high-level language. From what I've read about DOS/Windows, I think 
LF CR should look okay when sent to the screen, but may cause 
problems when sent to a file and opened with a text editor. Certainly 
it's nonstandard.
Incidentally--you must be using Brian Raiter's [] semantics for the count?

>I've considered adding an -xlatsrc option.  I've also considered adding
>an option to generate code.  The former stretches the definition of
>'Brainfuck', the latter stretches the definition of 'interpreter', so I
>haven't exactly rushed to implement either of them.  Still, few would
>say that optimization is particularly Platonic,

I'm trying to think what behavior would be Ideal. Maybe it should run 
one brainfuck instruction per instant, so that any terminating 
brainfuck program runs in an infinitesimal amount of time which is 
directly proportional to the number of instructions executed? :)

-Daniel Cristofani.
-- 
>>>++[<++++++++[<[<++>-]>>[>>]+>>+[-[->>+<<<[<[<<]<+>]>[>[>>]]]<[>>>>[-<<[-]]
+<[<+<]]>[<]+<<]<[>+<-]>>-]<.[-]>>]http://www.hevanet.com/cristofd/brainfuck/

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Wed May 07 15:18:10 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19DNqq-000PBP-00; Wed, 07 May 2003 15:16:48 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 07 May 2003 15:16:34 +0300 (EEST)
Received: from relay-2v.club-internet.fr ([194.158.96.113])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19DNqW-000PAY-00
	for lang@esoteric.sange.fi; Wed, 07 May 2003 15:16:28 +0300
Received: from HPPAVILION (lcbv2-1-35.n.club-internet.fr [213.44.12.35])
	by relay-2v.club-internet.fr (Postfix) with SMTP id 6FD3A16F6
	for <lang@esoteric.sange.fi>; Wed,  7 May 2003 14:16:22 +0200 (CEST)
Message-ID: <00b501c31492$78bda0e0$22122cd5@HPPAVILION>
From: "Laurent Vogel" <lvl@club-internet.fr>
To: <lang@esoteric.sange.fi>
Subject: [lang] pure shell
Date: Wed, 7 May 2003 14:16:20 +0200
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2800.1106
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
X-Spam-Score: -5.8 (-----)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19DNqW-000PAY-00*CKA4ItE0wc.*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: lvl@club-internet.fr
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19DNqq-000PBP-00*TotpWXvUwDo*

Hi,

Do you remember DD/SH? Some times ago Claudio Calvelli wrote a line editor
using only dd (disk dumber) and sh (the bourne shell). Well, It occurred
to me that dd was not really needed after all, it is possible to program
some advanced stuff directly in shell.

As a proof of concept, I wrote an implementation of factor(1), a utility
that prints prime factors of numbers. It is at:
  http://lvogel.free.fr/factor.sh
Of course it is far slower than the real factor, or even a naïve factoring
program written in dc, but it is far faster than the same naïve dc program
when executed by dc.sed (36 seconds compared to 16 minutes).

Speaking about dc, I suspect it would be possible to also write dc in
pure sh... I've almost got every building block to do it but...
time is lacking.

Laurent



-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Wed May 07 20:05:38 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19DSLj-000DXL-00; Wed, 07 May 2003 20:04:59 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 07 May 2003 20:04:44 +0300 (EEST)
Received: from [64.243.220.133] (helo=Exchange.assochq.org)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19DSLO-000DUb-00
	for lang@esoteric.sange.fi; Wed, 07 May 2003 20:04:38 +0300
Message-ID: <326381D05B66CF4C82E6880948DB53FBD28CFD@Exchange.assochq.org>
From: Gary Thompson <GaryT@assochq.org>
To: "'lang@esoteric.sange.fi'" <lang@esoteric.sange.fi>
Subject: [lang] new protolanguage
Date: Wed, 7 May 2003 12:05:38 -0500 
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01C314BA.E2072EE0"
X-Spam-Score: 0.0 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19DSLO-000DUb-00*aH1aPFvBpMk*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: GaryT@assochq.org
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19DSLj-000DXL-00*gRpIbo1SBwg*

This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_001_01C314BA.E2072EE0
Content-Type: text/plain;
	charset="iso-8859-1"


Just thought I'd throw out the idea that's been running through my head the
past few days.  I'll see if anyone wants to do anything with it.

Imagine a circular queue as a gear.  Each element is a tooth.  That's the
basic model.

The initial programming stage would consist of defining circular queues of
different sizes and placing them in a specified order to simulate a gear
train.  By loading numbers into the queues and specifying means for them to
interact, when you turn the drive gear, you have a TC machine.



1  2
     3   B  A
  X    7  Y  0 
     4   8  9
6  5

I hope you can see this as two intermeshing gears.  Gear 'X' is driving gear
'Y'.

VM

Now, in this approach, The tooth from the driving gear (3) acts as an
operator, the tooth it's driving (7) is the operand.  these instructions
then act on a simple virtual machine. Each gear meshing has it's own VM, but
they would all share memroy and other resources.

CA

Tooth 3 is the operator, tooth 4 is the operand, and tooth 7 stores the
result of the operation.


Other toys:

Parallel processing is easy, just allow one gear to drive two or more gears
simultaneously, and vice versa.

I/O could be handled in the CA model through a rack-and-pinion system (i.e.
regular, not circular, queues attached to the train)

Clutches could then be used to engage or disengage both the I/O system and
any other subroutines.

------_=_NextPart_001_01C314BA.E2072EE0
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
5.5.2654.45">
<TITLE>new protolanguage</TITLE>
</HEAD>
<BODY>
<BR>

<P><FONT SIZE=3D2>Just thought I'd throw out the idea that's been =
running through my head the past few days.&nbsp; I'll see if anyone =
wants to do anything with it.</FONT></P>

<P><FONT SIZE=3D2>Imagine a circular queue as a gear.&nbsp; Each =
element is a tooth.&nbsp; That's the basic model.</FONT>
</P>

<P><FONT SIZE=3D2>The initial programming stage would consist of =
defining circular queues of different sizes and placing them in a =
specified order to simulate a gear train.&nbsp; By loading numbers into =
the queues and specifying means for them to interact, when you turn the =
drive gear, you have a TC machine.</FONT></P>
<BR>
<BR>

<P><FONT SIZE=3D2>1&nbsp; 2</FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp; 3&nbsp;&nbsp; B&nbsp; =
A</FONT>
<BR><FONT SIZE=3D2>&nbsp; X&nbsp;&nbsp;&nbsp; 7&nbsp; Y&nbsp; 0 </FONT>
<BR><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp; 8&nbsp; =
9</FONT>
<BR><FONT SIZE=3D2>6&nbsp; 5</FONT>
</P>

<P><FONT SIZE=3D2>I hope you can see this as two intermeshing =
gears.&nbsp; Gear 'X' is driving gear 'Y'.</FONT>
</P>

<P><FONT SIZE=3D2>VM</FONT>
</P>

<P><FONT SIZE=3D2>Now, in this approach, The tooth from the driving =
gear (3) acts as an operator, the tooth it's driving (7) is the =
operand.&nbsp; these instructions then act on a simple virtual machine. =
Each gear meshing has it's own VM, but they would all share memroy and =
other resources.</FONT></P>

<P><FONT SIZE=3D2>CA</FONT>
</P>

<P><FONT SIZE=3D2>Tooth 3 is the operator, tooth 4 is the operand, and =
tooth 7 stores the result of the operation.</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>Other toys:</FONT>
</P>

<P><FONT SIZE=3D2>Parallel processing is easy, just allow one gear to =
drive two or more gears simultaneously, and vice versa.</FONT>
</P>

<P><FONT SIZE=3D2>I/O could be handled in the CA model through a =
rack-and-pinion system (i.e. regular, not circular, queues attached to =
the train)</FONT></P>

<P><FONT SIZE=3D2>Clutches could then be used to engage or disengage =
both the I/O system and any other subroutines.</FONT>
</P>

</BODY>
</HTML>
------_=_NextPart_001_01C314BA.E2072EE0--

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Fri May 09 20:04:46 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19EBFa-000287-00; Fri, 09 May 2003 20:01:39 +0300
Received: with LISTAR (v0.129a; list lang); Fri, 09 May 2003 20:01:24 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd2mo3so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19EBFG-00027Y-00
	for lang@esoteric.sange.fi; Fri, 09 May 2003 20:01:19 +0300
Received: from pd4mr2so.prod.shaw.ca
 (pd4mr2so-qfe3.prod.shaw.ca [10.0.141.213]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HEM00L16PHH06@l-daemon> for lang@esoteric.sange.fi; Fri,
 09 May 2003 10:51:17 -0600 (MDT)
Received: from pn2ml6so.prod.shaw.ca
 (pn2ml6so-qfe0.prod.shaw.ca [10.0.121.150]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HEM009PEPHH06@l-daemon> for lang@esoteric.sange.fi; Fri,
 09 May 2003 10:51:17 -0600 (MDT)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with SMTP id <0HEM00H6LPHGSC@l-daemon> for lang@esoteric.sange.fi; Fri,
 09 May 2003 10:51:17 -0600 (MDT)
Date: Fri, 09 May 2003 11:51:53 -0500
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: [bf] pibfi-2003.0505
In-reply-to: <a05111b00baddc2566cb1@[130.94.161.238]>
To: lang@esoteric.sange.fi
Message-id: <20030509115153.502adfca.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
References: <20030423142618.396fd0c0.cpressey@catseye.mb.ca>
 <20030426193010.04353493.cpressey@catseye.mb.ca>
 <a05111b03bad33a8b6322@[130.94.161.238]>
 <20030506012800.563d4392.cpressey@catseye.mb.ca>
 <a05111b00baddc2566cb1@[130.94.161.238]>
X-Spam-Score: -31.7 (-------------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19EBFG-00027Y-00*A4UUDpE1u4E*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19EBFa-000287-00*3n/Ql0EJHFg*

On Tue, 6 May 2003 14:49:52 -0700
"Daniel." <cristofd@hevanet.com> wrote:

> >There's something truly absurd about setting up a cluster of
> >machines merely to accomodate a really, really long Brainfuck tape...
> 
> :) especially since in any given week, all but one or two will be
> idle...

There should be a Guiness record for longest Brainfuck tape.  Then I'd
have something to shoot for.

Actually - if the machines have decent sized disks - I really doubt that
there are many (any?) Brainfuck programs that would ever use more than
one machine in the cluster.

Anyone know of a Brainfuck example program that uses a *LOT* of tape?
+[>+] doesn't really count.

> >I've found http://www.people.fas.harvard.edu/~jafowler/pi/pi.b to be
> >a really good test program.  It's written in BF16 and uses (for
> >whatever reason) LF CR as it's end-of-line marker.  pibfi runs it
> >fine. On this machine, I think it's an 800MHz 686, running FreeBSD,
> >it runs it in just under two and a half hours, averaging 185,000
> >Brainfuck instructions per second.
> 
> So about 4,000 cycles/instruction, not so bad for an interpreter in a 
> high-level language.

No, not bad at all considering it's using ten processes (which is absurd
for a strictly sequential language like Brainfuck.)  Most of the
processes are there to handle I/O and pi.b doesn't do a lot of that, but
e.g. the tape and the interpreter are seperate processes (and I might
include a 'tape filter' process in the future just for the sake of
orthogonality.)

I think the fact that this machine has a lot of RAM (256M) might be a
factor for the speed - zero swapping.

But worrying about performance isn't very Platonic either...

> Incidentally--you must be using Brian Raiter's [] semantics for the
> count?

I guess I must be - I just used what seemed intuitive.  If there are
other reasonable semantics, I should probably incorporate an option for
them.  (The sheer breadth of options for pibfi shall one day rival ls
and gcc... :)  I'll go dial up Brian's pages in a bit.

> I'm trying to think what behavior would be Ideal. Maybe it should run 
> one brainfuck instruction per instant, so that any terminating 
> brainfuck program runs in an infinitesimal amount of time which is 
> directly proportional to the number of instructions executed? :)

Ah, yes - pibfi is merely a shadow cast upon this rotten place from a
glowing, sparkly realm of purity where cubes are Real Cubes, spheres are
Real Spheres, and Brainfuck instructions are Real Brainfuck Instructions
- with zero mass, zero volume, and zero execution time, naturally.

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Sat May 10 01:35:50 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19EGQt-000CSA-00; Sat, 10 May 2003 01:33:39 +0300
Received: with LISTAR (v0.129a; list lang); Sat, 10 May 2003 01:33:25 +0300 (EEST)
Received: from pop.hevanet.com ([198.5.254.15])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19EGQE-000CQV-00
	for lang@esoteric.sange.fi; Sat, 10 May 2003 01:32:59 +0300
Received: from [130.94.161.238] (130-94-161-238-dsl.hevanet.com [130.94.161.238])
	by pop.hevanet.com (8.11.6p2/8.11.6p2) with ESMTP id h49MWss46820
	for <lang@esoteric.sange.fi>; Fri, 9 May 2003 15:32:55 -0700 (PDT)
Mime-Version: 1.0
X-Sender: cristofd@pop.hevanet.com
Message-Id: <a05111b00bae196d57732@[130.94.161.238]>
In-Reply-To: <20030509115153.502adfca.cpressey@catseye.mb.ca>
References: <20030423142618.396fd0c0.cpressey@catseye.mb.ca>
 <20030426193010.04353493.cpressey@catseye.mb.ca>
 <a05111b03bad33a8b6322@[130.94.161.238]>
 <20030506012800.563d4392.cpressey@catseye.mb.ca>
 <a05111b00baddc2566cb1@[130.94.161.238]>
 <20030509115153.502adfca.cpressey@catseye.mb.ca>
Date: Fri, 9 May 2003 15:32:53 -0700
To: lang@esoteric.sange.fi
From: "Daniel." <cristofd@hevanet.com>
Subject: [lang] Re: [bf] pibfi-2003.0505
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
X-Spam-Score: -23.1 (-----------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19EGQE-000CQV-00*hi6vBDs9qAI*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cristofd@hevanet.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19EGQt-000CSA-00*T4zY6oCcDB6*

>Actually - if the machines have decent sized disks - I really doubt that
>there are many (any?) Brainfuck programs that would ever use more than
>one machine in the cluster.
>
>Anyone know of a Brainfuck example program that uses a *LOT* of tape?
>+[>+] doesn't really count.

Most programs that can consume an arbitrary amount of tape have 
running time proportional to at least the square of the tape 
consumed, meaning if they did fill a disk they'd take millennia to 
finish running. Some of them have an input phase where they consume 
tape in linear time, so if you gave them input about as big as the 
disk, you could fill the disk up before they really started 
processing. The two I can think of offhand that have linear running 
time, and could therefore maybe fill a disk AND deliver the result 
sometime soon, are reverse.b and David S.'s first 91-byte program for 
the sort contest.

>  > Incidentally--you must be using Brian Raiter's [] semantics for the
>>  count?
>
>I guess I must be - I just used what seemed intuitive.  If there are
>other reasonable semantics, I should probably incorporate an option for
>them.  (The sheer breadth of options for pibfi shall one day rival ls
>and gcc... :)  I'll go dial up Brian's pages in a bit.

I think most pages including the original readme explain [ and ] only 
as parts of a larger structure, the "loop", that has certain 
behavior. But if you explain their behavior separately, there are 
several versions which all produce equivalent results:

Brian Raiter's version:
[  Jump past the matching ] if the byte at the pointer is zero.
]  Jump to the matching [.
Advantages: short, and therefore allows tiny compilers.

Frans Faase's version:
'[' : moves to the command following the matching ']', if the memory 
cell under the memory pointer is zero, and
']' : moves to the command following the matching '[', if the memory 
cell under the memory pointer is not zero.
Advantages: symmetrical and time-efficient.

A third reasonable version:
[ jump to the matching ]
] jump to the command after the matching [ if the byte at the pointer 
is nonzero
Advantages: short, and therefore allows tiny compilers. Fairly 
time-efficient if the typical loop is executed several times.

Then you can remove the phrase "the command following" from one or 
both parts of Faase's version to get three more silly versions.

Though they produce the same behavior, these different versions 
naturally will result in different instruction counts and different 
running times. Also, some may be more amenable than others to the 
various bracket-matching schemes used in different interpreters. 
Compilers tend to translate [ and ] very straightforwardly as "jump" 
or "branch" instructions, and my impulse for interpreters is always 
to mimic that, putting the targets in an array parallel to the code, 
and precalculating them with a stack while verifying that the 
brackets are balanced; it just seems the most straightforward and 
efficient mechanism. But different interpreters use all kinds of 
techniques.

>  > I'm trying to think what behavior would be Ideal. Maybe it should run
>>  one brainfuck instruction per instant, so that any terminating
>>  brainfuck program runs in an infinitesimal amount of time which is
>>  directly proportional to the number of instructions executed? :)
>
>Ah, yes - pibfi is merely a shadow cast upon this rotten place from a
>glowing, sparkly realm of purity where cubes are Real Cubes, spheres are
>Real Spheres, and Brainfuck instructions are Real Brainfuck Instructions

Now you've got me thinking "small furry creatures from Alpha Centauri".

-Daniel.
-- 
>>>++[<++++++++[<[<++>-]>>[>>]+>>+[-[->>+<<<[<[<<]<+>]>[>[>>]]]<[>>>>[-<<[-]]
+<[<+<]]>[<]+<<]<[>+<-]>>-]<.[-]>>]http://www.hevanet.com/cristofd/brainfuck/

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Sat May 10 03:20:37 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19EI2p-000HkN-00; Sat, 10 May 2003 03:16:55 +0300
Received: with LISTAR (v0.129a; list lang); Sat, 10 May 2003 03:16:41 +0300 (EEST)
Received: from ray.idi.ntnu.no ([129.241.107.68] ident=0)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19EI2W-000Hjs-00
	for lang@esoteric.sange.fi; Sat, 10 May 2003 03:16:36 +0300
Received: from furu.idi.ntnu.no (IDENT:25122@furu.idi.ntnu.no [129.241.107.64])
	by ray.idi.ntnu.no (8.12.9/8.12.9) with ESMTP id h4A0GWt3026048
	for <lang@esoteric.sange.fi>; Sat, 10 May 2003 02:16:33 +0200 (MEST)
Date: Sat, 10 May 2003 02:16:32 +0200 (MEST)
From: Rune Berge <rune@krokodille.com>
X-X-Sender: runeberg@furu.idi.ntnu.no
To: lang@esoteric.sange.fi
Subject: [lang] Turing completeness
Message-ID: <Pine.GSO.4.44.0305100157160.3410-100000@furu.idi.ntnu.no>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-Spam-Status:  No, hits=0.2 required=4
X-Virus-Scanned: by amavisd-new-IDI
X-Spam-Score: -12.3 (------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19EI2W-000Hjs-00*ujPpC3Ak.RI*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: rune@krokodille.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19EI2p-000HkN-00*ZazXHHg5/AU*


Hi all.

I've been lurking on this list for a while. I got introduced to the
wonderful world of esoteric programming through Brainfuck a couple of
months ago, and has been hooked ever since. I am currently working on my
own minimalistic language (well, actually the language is finished, but
the interpreter needs some more work) and have the following question:
Is a working brainfuck interpreter sufficient to prove that the language
is Turing complete? I'm pretty sure it is, but it'd be nice to have it
confirmed.


Rune



-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Sat May 10 05:36:40 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19EKBz-000Pgi-00; Sat, 10 May 2003 05:34:31 +0300
Received: with LISTAR (v0.129a; list lang); Sat, 10 May 2003 05:34:17 +0300 (EEST)
Received: from pop.hevanet.com ([198.5.254.15])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19EKBf-000Pg5-00
	for lang@esoteric.sange.fi; Sat, 10 May 2003 05:34:12 +0300
Received: from [130.94.161.238] (130-94-161-238-dsl.hevanet.com [130.94.161.238])
	by pop.hevanet.com (8.11.6p2/8.11.6p2) with ESMTP id h4A2Y7s69846
	for <lang@esoteric.sange.fi>; Fri, 9 May 2003 19:34:08 -0700 (PDT)
Mime-Version: 1.0
X-Sender: cristofd@pop.hevanet.com
Message-Id: <a05111b00bae20eebae92@[130.94.161.238]>
In-Reply-To: <Pine.GSO.4.44.0305100157160.3410-100000@furu.idi.ntnu.no>
References: <Pine.GSO.4.44.0305100157160.3410-100000@furu.idi.ntnu.no>
Date: Fri, 9 May 2003 19:34:07 -0700
To: lang@esoteric.sange.fi
From: "Daniel." <cristofd@hevanet.com>
Subject: [lang] Re: Turing completeness
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
X-Spam-Score: -9.7 (---------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19EKBf-000Pg5-00*Y5Hsinb2j0.*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cristofd@hevanet.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19EKBz-000Pgi-00*kcwknIiYBrw*

>Is a working brainfuck interpreter sufficient to prove that the language
>is Turing complete?

Yes, for certain values of "working". :) The most direct way to check 
whether your interpreter's version of brainfuck is known to be 
Turing-complete is to use it to run the brainfuck utm available at
http://www.hevanet.com/cristofd/brainfuck/utm.b
and see what answers you get. There's a simple test case in the 
second paragraph, and that should test everything except whether the 
storage is practically inexhaustible.
-Daniel.
-- 
>>>++[<++++++++[<[<++>-]>>[>>]+>>+[-[->>+<<<[<[<<]<+>]>[>[>>]]]<[>>>>[-<<[-]]
+<[<+<]]>[<]+<<]<[>+<-]>>-]<.[-]>>]http://www.hevanet.com/cristofd/brainfuck/

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Sat May 10 15:22:33 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19ETKw-0001ww-00; Sat, 10 May 2003 15:20:22 +0300
Received: with LISTAR (v0.129a; list lang); Sat, 10 May 2003 15:20:08 +0300 (EEST)
Received: from ray.idi.ntnu.no ([129.241.107.68] ident=0)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19ETKc-0001wR-00
	for lang@esoteric.sange.fi; Sat, 10 May 2003 15:20:02 +0300
Received: from furu.idi.ntnu.no (IDENT:25122@furu.idi.ntnu.no [129.241.107.64])
	by ray.idi.ntnu.no (8.12.9/8.12.9) with ESMTP id h4ACJxt3021184
	for <lang@esoteric.sange.fi>; Sat, 10 May 2003 14:20:00 +0200 (MEST)
Date: Sat, 10 May 2003 14:19:59 +0200 (MEST)
From: Rune Berge <rune@krokodille.com>
X-X-Sender: runeberg@furu.idi.ntnu.no
To: lang@esoteric.sange.fi
Subject: [lang] Re: Turing completeness
In-Reply-To: <a05111b00bae20eebae92@[130.94.161.238]>
Message-ID: <Pine.GSO.4.44.0305101407360.14229-100000@furu.idi.ntnu.no>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-Spam-Status:  No, hits=-3.3 required=4
X-Virus-Scanned: by amavisd-new-IDI
X-Spam-Score: -28.2 (----------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19ETKc-0001wR-00*9AIZNh/LhQg*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: rune@krokodille.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19ETKw-0001ww-00*FDUBYuVdj4o*


On Fri, 9 May 2003, Daniel. wrote:

> >Is a working brainfuck interpreter sufficient to prove that the language
> >is Turing complete?
>
> Yes, for certain values of "working". :) The most direct way to check
> whether your interpreter's version of brainfuck is known to be
> Turing-complete is to use it to run the brainfuck utm available at
> http://www.hevanet.com/cristofd/brainfuck/utm.b
> and see what answers you get. There's a simple test case in the
> second paragraph, and that should test everything except whether the
> storage is practically inexhaustible.

Thanks. The test case worked fine, so now I'm confident that the language
is Turing complete. The storage is of course not inexhaustible, but that's
only a limitation in the implementation (like all other languages), not in
the language itself.

I'll post the language here when I the interpreter is done. Right now it's
working, but extremely inefficient.

Rune


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Sat May 10 23:36:12 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19Eb2J-000PsH-00; Sat, 10 May 2003 23:33:39 +0300
Received: with LISTAR (v0.129a; list lang); Sat, 10 May 2003 23:33:25 +0300 (EEST)
Received: from pop.hevanet.com ([198.5.254.15])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19Eb1f-000PqS-00
	for lang@esoteric.sange.fi; Sat, 10 May 2003 23:32:59 +0300
Received: from [130.94.161.238] (130-94-161-238-dsl.hevanet.com [130.94.161.238])
	by pop.hevanet.com (8.11.6p2/8.11.6p2) with ESMTP id h4AKWps59472
	for <lang@esoteric.sange.fi>; Sat, 10 May 2003 13:32:52 -0700 (PDT)
Mime-Version: 1.0
X-Sender: cristofd@pop.hevanet.com
Message-Id: <a05111b00bae30d5b88ef@[130.94.161.238]>
In-Reply-To: <Pine.GSO.4.44.0305101407360.14229-100000@furu.idi.ntnu.no>
References: <Pine.GSO.4.44.0305101407360.14229-100000@furu.idi.ntnu.no>
Date: Sat, 10 May 2003 13:32:50 -0700
To: lang@esoteric.sange.fi
From: "Daniel." <cristofd@hevanet.com>
Subject: [lang] Re: Turing completeness
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
X-Spam-Score: -12.8 (------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19Eb1f-000PqS-00*OxpDshkDOdA*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cristofd@hevanet.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19Eb2J-000PsH-00*6sABvJY7lmc*

>Thanks. The test case worked fine, so now I'm confident that the language
>is Turing complete.

Excellent.

>The storage is of course not inexhaustible, but that's
>only a limitation in the implementation (like all other languages), not in
>the language itself.

What I meant to say was that it doesn't test whether the storage is 
"close enough" to being inexhaustible for practical purposes. For 
brainfuck, 30,000 cells are probably enough. 100 cells are definitely 
not enough, but some people have made the array that small, and that 
little test case would still run on those implementations, since it 
only uses 32 cells. That's all I was trying to say.
-Daniel.
-- 
>>>++[<++++++++[<[<++>-]>>[>>]+>>+[-[->>+<<<[<[<<]<+>]>[>[>>]]]<[>>>>[-<<[-]]
+<[<+<]]>[<]+<<]<[>+<-]>>-]<.[-]>>]http://www.hevanet.com/cristofd/brainfuck/

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Sun May 11 04:51:28 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19EfvG-000FFM-00; Sun, 11 May 2003 04:46:42 +0300
Received: with LISTAR (v0.129a; list lang); Sun, 11 May 2003 04:46:27 +0300 (EEST)
Received: from ray.idi.ntnu.no ([129.241.107.68] ident=0)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19Efuv-000FE7-00
	for lang@esoteric.sange.fi; Sun, 11 May 2003 04:46:21 +0300
Received: from furu.idi.ntnu.no (IDENT:25122@furu.idi.ntnu.no [129.241.107.64])
	by ray.idi.ntnu.no (8.12.9/8.12.9) with ESMTP id h4B1k3t3002043
	for <lang@esoteric.sange.fi>; Sun, 11 May 2003 03:46:03 +0200 (MEST)
Date: Sun, 11 May 2003 03:46:03 +0200 (MEST)
From: Rune Berge <rune@krokodille.com>
X-X-Sender: runeberg@furu.idi.ntnu.no
To: lang@esoteric.sange.fi
Subject: [lang] Re: Turing completeness
In-Reply-To: <a05111b00bae30d5b88ef@[130.94.161.238]>
Message-ID: <Pine.GSO.4.44.0305110330190.21677-100000@furu.idi.ntnu.no>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-Spam-Status:  No, hits=-3 required=4
X-Virus-Scanned: by amavisd-new-IDI
X-Spam-Score: -28.2 (----------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19Efuv-000FE7-00*YZg76TsJ3wE*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: rune@krokodille.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19EfvG-000FFM-00*JYqCrv00.uw*


On Sat, 10 May 2003, Daniel. wrote:

> What I meant to say was that it doesn't test whether the storage is
> "close enough" to being inexhaustible for practical purposes. For
> brainfuck, 30,000 cells are probably enough. 100 cells are definitely
> not enough, but some people have made the array that small, and that
> little test case would still run on those implementations, since it
> only uses 32 cells. That's all I was trying to say.

OK. I've noticed that mod_bf uses an array size of 100 because 30000 "is a
waste of memory", though I seriously doubt that 30k is a significant
amount of memory on any machine able to run Apache...

Rune



-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Mon May 12 11:40:54 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19F8ol-0001JK-00; Mon, 12 May 2003 11:37:55 +0300
Received: with LISTAR (v0.129a; list lang); Mon, 12 May 2003 11:37:41 +0300 (EEST)
Received: from hugin.diku.dk ([130.225.96.144] ident=qmailr)
	by oiva.sange.fi with smtp (Exim 4.12)
	id 19F8oR-0001Ip-00
	for lang@esoteric.sange.fi; Mon, 12 May 2003 11:37:35 +0300
Received: (qmail 27141 invoked from network); 12 May 2003 08:37:35 -0000
Received: from tyr.diku.dk (expen@130.225.96.226)
  by hugin.diku.dk with QMQP; 12 May 2003 08:37:35 -0000
Date: Mon, 12 May 2003 10:37:34 +0200 (MEST)
From: Espen Suenson <expen@diku.dk>
To: lang@esoteric.sange.fi
Subject: [lang] Re: Turing completeness
In-Reply-To: <Pine.GSO.4.44.0305100157160.3410-100000@furu.idi.ntnu.no>
Message-ID: <Pine.LNX.4.53md.0305121029170.16624@tyr.diku.dk>
References: <Pine.GSO.4.44.0305100157160.3410-100000@furu.idi.ntnu.no>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-Spam-Score: -25.9 (-------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19F8oR-0001Ip-00*DyMtAWuFdKo*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: expen@diku.dk
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19F8ol-0001JK-00*dGwfh2ew1zU*

Rune Berge wrote:

> Is a working brainfuck interpreter sufficient to prove that the language
> is Turing complete? I'm pretty sure it is, but it'd be nice to have it
> confirmed.

If you have a working interpreter you can also construct a formal proof of
Turing completeness. Most people accept the former as sufficient, but it
is not stricly mathematically speaking.

Espen
-- 
At night sometimes the roll of drums behind the curtains of trees would
run up the river and remain sustained faintly, as if hovering in the air
high over our heads, till the first break of day. Whether it meant war,
peace or prayer we could not tell.

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Mon May 12 12:00:21 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19F981-0002O1-00; Mon, 12 May 2003 11:57:49 +0300
Received: with LISTAR (v0.129a; list lang); Mon, 12 May 2003 11:57:35 +0300 (EEST)
Received: from pop.hevanet.com ([198.5.254.15])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19F97h-0002NK-00
	for lang@esoteric.sange.fi; Mon, 12 May 2003 11:57:30 +0300
Received: from [130.94.161.238] (130-94-161-238-dsl.hevanet.com [130.94.161.238])
	by pop.hevanet.com (8.11.6p2/8.11.6p2) with ESMTP id h4C8vPP22015
	for <lang@esoteric.sange.fi>; Mon, 12 May 2003 01:57:25 -0700 (PDT)
Mime-Version: 1.0
X-Sender: cristofd@pop.hevanet.com
Message-Id: <a05111b00bae5112c165c@[130.94.161.238]>
In-Reply-To: <Pine.LNX.4.53md.0305121029170.16624@tyr.diku.dk>
References: <Pine.GSO.4.44.0305100157160.3410-100000@furu.idi.ntnu.no>
 <Pine.LNX.4.53md.0305121029170.16624@tyr.diku.dk>
Date: Mon, 12 May 2003 01:57:24 -0700
To: lang@esoteric.sange.fi
From: "Daniel." <cristofd@hevanet.com>
Subject: [lang] Re: Turing completeness
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
X-Spam-Score: -12.8 (------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19F97h-0002NK-00*ZSVMt8tV7PY*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cristofd@hevanet.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19F981-0002O1-00*eKAgFBcszKE*

>If you have a working interpreter you can also construct a formal proof of
>Turing completeness. Most people accept the former as sufficient, but it
>is not stricly mathematically speaking.

Explain this further. What else would be needed? Why is an 
interpreter for a Turing-complete language--that is, a demonstration 
that a Turing-complete computational model can be emulated by the 
language in question--not sufficient?

-Daniel.
-- 
>>>++[<++++++++[<[<++>-]>>[>>]+>>+[-[->>+<<<[<[<<]<+>]>[>[>>]]]<[>>>>[-<<[-]]
+<[<+<]]>[<]+<<]<[>+<-]>>-]<.[-]>>]http://www.hevanet.com/cristofd/brainfuck/

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Mon May 12 12:37:38 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19F9iz-0004TQ-00; Mon, 12 May 2003 12:36:01 +0300
Received: with LISTAR (v0.129a; list lang); Mon, 12 May 2003 12:35:47 +0300 (EEST)
Received: from [194.78.219.157] (helo=decis.be)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19F9if-0004SX-00
	for lang@esoteric.sange.fi; Mon, 12 May 2003 12:35:41 +0300
Received: from decis.be ([192.168.0.20])
	by decis.be ([194.78.219.157])
	with SMTP (MDaemon.PRO.v6.5.0.R)
	for <lang@esoteric.sange.fi>; Mon, 12 May 2003 11:39:26 +0200
Message-ID: <3EBF6D2F.C9263414@decis.be>
Date: Mon, 12 May 2003 11:45:19 +0200
From: Frederic van der Plancke <fvdp@decis.be>
Organization: Decis
X-Mailer: Mozilla 4.77 [en] (Windows NT 5.0; U)
X-Accept-Language: en
MIME-Version: 1.0
To: lang@esoteric.sange.fi
Subject: [lang] Re: Turing completeness
References: <Pine.GSO.4.44.0305100157160.3410-100000@furu.idi.ntnu.no>
	 <Pine.LNX.4.53md.0305121029170.16624@tyr.diku.dk> <a05111b00bae5112c165c@[130.94.161.238]>
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Authenticated-Sender: fplancke@decis.be
X-MDRemoteIP: 192.168.0.20
X-Return-Path: fvdp@decis.be
X-MDaemon-Deliver-To: lang@esoteric.sange.fi
X-Spam-Score: -22.7 (----------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19F9if-0004SX-00*GAhNw46uyyI*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: fvdp@decis.be
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19F9iz-0004TQ-00*z9bMQesM4nY*

"Daniel." wrote:
> 
> >If you have a working interpreter you can also construct a formal proof of
> >Turing completeness. Most people accept the former as sufficient, but it
> >is not stricly mathematically speaking.
> 
> Explain this further. What else would be needed? Why is an
> interpreter for a Turing-complete language--that is, a demonstration
> that a Turing-complete computational model can be emulated by the
> language in question--not sufficient?

The only things I see is:
  * you have to prove that your interpreter is indeed correct ! 
  * the problem of finite storage: it is not sufficient to emulate BF with
    a given limit on storage, since limited BF not TC; a single program should be
    able to emulate BF with unbounded space (at least on the right side)
    (or BF with arbitrary big numbers in cells and "enough" but still finitely
    many cells). That single program probably needs to run in some "ideal" 
    version of your language on some "ideal" (= memory-unlimited) machine: 
    then it's only that ideal system which is proven to be TC.
  * is there any formal proof yet that (unlimited) BF is TC ? ;-)

Frédéric vdP


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Mon May 12 12:47:33 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19F9sZ-00053v-00; Mon, 12 May 2003 12:45:55 +0300
Received: with LISTAR (v0.129a; list lang); Mon, 12 May 2003 12:45:40 +0300 (EEST)
Received: from mail.wirelessisland.net ([66.21.33.168])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19F9sF-00053A-00
	for lang@esoteric.sange.fi; Mon, 12 May 2003 12:45:35 +0300
Received: from localhost.localdomain [24.224.214.15] by mail.wirelessisland.net with ESMTP
  (SMTPD32-7.07) id AD211F00144; Mon, 12 May 2003 05:45:05 -0400
Content-Type: text/plain;
  charset="us-ascii"
From: Stephen Mosher <steve@wirelessisland.net>
Organization: n/a
To: lang@esoteric.sange.fi
Subject: [lang] On the subject of Turing Completeness...
Date: Mon, 12 May 2003 06:45:30 -0300
User-Agent: KMail/1.4.3
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Message-Id: <200305120645.30685.steve@wirelessisland.net>
X-Spam-Score: -6.0 (------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19F9sF-00053A-00*CPQwAYPxaF.*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: steve@wirelessisland.net
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19F9sZ-00053v-00*CVWRop./u4Q*

I have an odd question that follows from a conclusion I came to while thi=
nking=20
idly about something else...=20

Has/can it been proven that any algorithm must have a finite length=20
representation? I think this is an easy conclusion when you consider that=
=20
some non-TC languages could mimic any algorithm with an infinitely long=20
program.

The funny thing is that while you'll never see an infinitely long program=
=20
anywhere, you could actually demonstrate this mimicking by generating and=
=20
streaming this program to the interpreter on the fly, as needed. I'm awar=
e=20
that the whole thing would be, essentially, TC in a holistic sense, but=20
that's beside the point.

So, are algorithms inherently finite-length when implemented, or am I mis=
sing=20
something? I know that this is all thought-experiment, but I think it's=20
fairly solid.

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Mon May 12 13:11:02 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19FAFF-0006KH-00; Mon, 12 May 2003 13:09:21 +0300
Received: with LISTAR (v0.129a; list lang); Mon, 12 May 2003 13:09:07 +0300 (EEST)
Received: from mail.rib.de ([213.68.181.228])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19FAEw-0006Hj-00
	for lang@esoteric.sange.fi; Mon, 12 May 2003 13:09:02 +0300
Received: from 172.16.17.6 by mail.rib.de ([213.68.181.228] running VPOP3) with ESMTP; Mon, 12 May 2003 12:05:03 +0200
Date: Mon, 12 May 2003 12:05:03 +0200
From: Carsten Kuckuk <ck@kuckuk.com>
X-Mailer: The Bat! (v1.61) Personal
X-Priority: 3 (Normal)
Message-ID: <562656703.20030512120503@kuckuk.com>
To: Stephen Mosher <steve@wirelessisland.net>
CC: lang@esoteric.sange.fi
Subject: [lang] Re: On the subject of Turing Completeness...
In-Reply-To: <200305120645.30685.steve@wirelessisland.net>
References: <200305120645.30685.steve@wirelessisland.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Spam-Score: -22.7 (----------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19FAEw-0006Hj-00*XcBgHJu4MNc*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ck@kuckuk.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19FAFF-0006KH-00*hYHdj.b8rOw*

Stephen,

Monday, May 12, 2003, 11:45:30 AM, you wrote:

SM> Has/can it been proven that any algorithm must have a finite length
SM> representation? I think this is an easy conclusion when you consider that 
SM> some non-TC languages could mimic any algorithm with an infinitely long 
SM> program.

I always thought that the definition of "algorithm" is something along
the lines of "a description of steps that need to be followed in order
to solve a general class of problems in finite time" and that the
description itself has finite length so it's already part of the
definition. Unfortunately I have all my introductory CS books at home
:-/

Carsten


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Mon May 12 13:41:54 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19FAin-0007xU-00; Mon, 12 May 2003 13:39:53 +0300
Received: with LISTAR (v0.129a; list lang); Mon, 12 May 2003 13:39:39 +0300 (EEST)
Received: from mail.rib.de ([213.68.181.228])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19FAiQ-0007vQ-00
	for lang@esoteric.sange.fi; Mon, 12 May 2003 13:39:31 +0300
Received: from 172.16.17.6 by mail.rib.de ([213.68.181.228] running VPOP3) with ESMTP; Mon, 12 May 2003 12:38:54 +0200
Date: Mon, 12 May 2003 12:38:54 +0200
From: Carsten Kuckuk <ck@kuckuk.com>
X-Mailer: The Bat! (v1.61) Personal
X-Priority: 3 (Normal)
Message-ID: <1284687953.20030512123854@kuckuk.com>
To: Stephen Mosher <steve@wirelessisland.net>
CC: lang@esoteric.sange.fi
Subject: [lang] Re[2]: On the subject of Turing Completeness...
In-Reply-To: <200305120718.31933.steve@wirelessisland.net>
References: <200305120645.30685.steve@wirelessisland.net> <562656703.20030512120503@kuckuk.com> <200305120718.31933.steve@wirelessisland.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Spam-Score: -9.7 (---------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19FAiQ-0007vQ-00*ZvLWp6W3yhw*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ck@kuckuk.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19FAin-0007xU-00*FxoHsT0aorM*

Stephen,

http://mathworld.wolfram.com/Algorithm.html

>>>>>
Algorithm

A specific set of instructions for carrying out a procedure or solving
a problem, usually with the requirement that the procedure terminate
at some point. Specific algorithms sometimes also go by the name
method, procedure, or technique. The word "algorithm" is a distortion
of al-Khwarizmi,  a Persian mathematician who wrote an influential
treatise about algebraic methods. The process of applying an algorithm
to an input to obtain an output is called a computation.
<<<<<

So apparently, there are different definitions around. "Specific Set"
is general enough to include "infinite sets", and "usually..terminate"
allows both versions. Seems to be a matter of taste (and belief (and
teacher (and the purpose you need that definition for (..))))

In my personal opinion, algorithms only make sense if the
description of them (in some generally accepted form like C++, RTL,
Lisp, recursive functions, whatever) is finite, and if algorithms
terminate after a finite amount of steps for each specific problem
they're about to solve.

So "calculate the decimal representation of Pi" is not an algorithm
(doesn't solve a class of problems, doesn't terminate), but "For a
given n, n>0, calculate the first n digits in the decimal
representation of Pi" is.

Carsten


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Mon May 12 14:16:15 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19FBGF-0009ja-00; Mon, 12 May 2003 14:14:28 +0300
Received: with LISTAR (v0.129a; list lang); Mon, 12 May 2003 14:14:13 +0300 (EEST)
Received: from pop.hevanet.com ([198.5.254.15])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19FBFv-0009j2-00
	for lang@esoteric.sange.fi; Mon, 12 May 2003 14:14:08 +0300
Received: from [130.94.161.238] (130-94-161-238-dsl.hevanet.com [130.94.161.238])
	by pop.hevanet.com (8.11.6p2/8.11.6p2) with ESMTP id h4CBE5P62295
	for <lang@esoteric.sange.fi>; Mon, 12 May 2003 04:14:06 -0700 (PDT)
Mime-Version: 1.0
X-Sender: cristofd@pop.hevanet.com
Message-Id: <a05111b01bae51e6230b5@[130.94.161.238]>
In-Reply-To: <3EBF6D2F.C9263414@decis.be>
References: <Pine.GSO.4.44.0305100157160.3410-100000@furu.idi.ntnu.no>	
 <Pine.LNX.4.53md.0305121029170.16624@tyr.diku.dk>
 <a05111b00bae5112c165c@[130.94.161.238]> <3EBF6D2F.C9263414@decis.be>
Date: Mon, 12 May 2003 04:14:05 -0700
To: lang@esoteric.sange.fi
From: "Daniel." <cristofd@hevanet.com>
Subject: [lang] Re: Turing completeness
Content-Type: text/plain; charset="iso-8859-1" ; format="flowed"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -21.6 (---------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19FBFv-0009j2-00*T6tZ5Ctbr1I*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cristofd@hevanet.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19FBGF-0009ja-00*a.Q6cX5H5JU*

>  > >If you have a working interpreter you can also construct a formal=
 proof of
>>  >Turing completeness. Most people accept the former as sufficient, but i=
t
>>  >is not stricly mathematically speaking.
>>
>>  Explain this further. What else would be needed? Why is an
>>  interpreter for a Turing-complete language--that is, a demonstration
>>  that a Turing-complete computational model can be emulated by the
>>  language in question--not sufficient?
>
>The only things I see is:
>   * you have to prove that your interpreter is indeed correct !
>   * the problem of finite storage: it is not sufficient to emulate BF with
>     a given limit on storage, since limited BF not TC; a single 
>program should be
>     able to emulate BF with unbounded space (at least on the right side)
>     (or BF with arbitrary big numbers in cells and "enough" but still fini=
tely
>     many cells). That single program probably needs to run in some "ideal"
>     version of your language on some "ideal" (=3D memory-unlimited) machin=
e:
>     then it's only that ideal system which is proven to be TC.
>   * is there any formal proof yet that (unlimited) BF is TC ? ;-)

I implemented a Universal Turing Machine in it; it's at 
http://www.hevanet.com/cristofd/brainfuck/utm.b
Since this is yet another instance of proof-by-implementation, the 
same three issues apply again.
1. re: correctness of the implementation, it's short enough that it'd 
be hard for errors to slip by, and almost any test case requires 
every part of the code to be working properly, or the output will be 
wrong.
2. the brainfuck array is assumed to be unbounded on the right, and 
is used to represent the Turing machine's tape in a very direct 
manner. The range of the cells must be at least 0-100.
3. whether that particular Turing machine is Turing-complete depends 
on whether the class of tag-systems it emulates is Turing-complete. I 
haven't read Minsky's stuff on the Turing-completeness of 
tag-systems; I probably will soon. Until now, I've been content to 
trust it since it appeared in a reputable-seeming journal.

=46rans Faase gave two other proofs of the Turing-completeness of 
brainfuck; they're at
http://home.planet.nl/~faase009/Ha_bf_Turing.html
The one in terms of URM is quite straightforward, and assumes a 
finite array of infinite-range cells (to the left of the pointer's 
original position), rather than an unbounded array of finite-range 
cells; the other assumes an unbounded array of infinite-range cells.

Urban M=FCller said in the readme to version 2 (the classic brainfuck 
package) that brainfuck was provably Turing-complete. I don't know 
what proof he had in mind; I think I'll ask, though I've avoided 
bugging him with inquiries so far.
-Daniel.
-- 
>>>++[<++++++++[<[<++>-]>>[>>]+>>+[-[->>+<<<[<[<<]<+>]>[>[>>]]]<[>>>>[-<<[-]=
]
+<[<+<]]>[<]+<<]<[>+<-]>>-]<.[-]>>]http://www.hevanet.com/cristofd/brainfuck=
/

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue May 13 00:40:10 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19FKzn-000Eol-00; Tue, 13 May 2003 00:38:08 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 13 May 2003 00:37:53 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd3mo3so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19FKzT-000EoD-00
	for lang@esoteric.sange.fi; Tue, 13 May 2003 00:37:48 +0300
Received: from pd4mr2so.prod.shaw.ca
 (pd4mr2so-qfe3.prod.shaw.ca [10.0.141.213]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HES00IAQMQU44@l-daemon> for lang@esoteric.sange.fi; Mon,
 12 May 2003 15:37:42 -0600 (MDT)
Received: from pn2ml6so.prod.shaw.ca
 (pn2ml6so-qfe0.prod.shaw.ca [10.0.121.150]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HES00DDLMQUW8@l-daemon> for lang@esoteric.sange.fi; Mon,
 12 May 2003 15:37:42 -0600 (MDT)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with SMTP id <0HES004JYMQTIH@l-daemon> for lang@esoteric.sange.fi; Mon,
 12 May 2003 15:37:42 -0600 (MDT)
Date: Mon, 12 May 2003 16:38:24 -0500
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: [bf] pibfi-2003.0505
In-reply-to: <a05111b00bae196d57732@[130.94.161.238]>
To: lang@esoteric.sange.fi
Message-id: <20030512163824.3439af83.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
References: <20030423142618.396fd0c0.cpressey@catseye.mb.ca>
 <20030426193010.04353493.cpressey@catseye.mb.ca>
 <a05111b03bad33a8b6322@[130.94.161.238]>
 <20030506012800.563d4392.cpressey@catseye.mb.ca>
 <a05111b00baddc2566cb1@[130.94.161.238]>
 <20030509115153.502adfca.cpressey@catseye.mb.ca>
 <a05111b00bae196d57732@[130.94.161.238]>
X-Spam-Score: -28.1 (----------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19FKzT-000EoD-00*zwG47a7QSDQ*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19FKzn-000Eol-00*1II5StyMo0U*

On Fri, 9 May 2003 15:32:53 -0700
"Daniel." <cristofd@hevanet.com> wrote:

> Most programs that can consume an arbitrary amount of tape have 
> running time proportional to at least the square of the tape 
> consumed, meaning if they did fill a disk they'd take millennia to 
> finish running. Some of them have an input phase where they consume 
> tape in linear time, so if you gave them input about as big as the 
> disk, you could fill the disk up before they really started 
> processing. The two I can think of offhand that have linear running 
> time, and could therefore maybe fill a disk AND deliver the result 
> sometime soon, are reverse.b and David S.'s first 91-byte program for 
> the sort contest.

Hmm, thanks.  I thought about it a bit and came up with, of all things,
a variation on the unix command 'tail' - echo just the last ten bytes of
the input stream.  Something like (with EOF=0):

,[>,]<<<<<<<<<<.>.>.>.>.>.>.>.>.>.

Then give it an 80 gig file and it'll use up 80 gigs of tape (assuming
no optimizations) while having a (relatively) short running time.

So there might be a justification (flimsy as it may be) to be able to
distribute the tape across machines after all.

> >  > Incidentally--you must be using Brian Raiter's [] semantics for
> >  > the
> >>  count?
> >
> >I guess I must be - I just used what seemed intuitive.  If there are
> >other reasonable semantics, I should probably incorporate an option
> >for them.  (The sheer breadth of options for pibfi shall one day
> >rival ls and gcc... :)  I'll go dial up Brian's pages in a bit.
> 
> I think most pages including the original readme explain [ and ] only 
> as parts of a larger structure, the "loop", that has certain 
> behavior.

That's certainly how it's implemented in pibfi.  The loop is extracted
and treated essentially like a subprogram.  The counting of the [ and ]
instructions is highly artificial - there are no [ and ] 'instructions'
in the internal program form, only deep tuples.

pibfi increments the [ count at the beginning of a loop.  It then
performs the test; if zero, it increments the ] count and moves on.  If
nonzero, it executes the loop body, increments the ] count, and repeats
(goes back to the point described by the first sentence in this
paragraph.)

So this is not, actually, Brian Raiter's reckoning.  To get that, I'd
have to omit the ] increment in the second sentence of the above
paragraph.

Nor is it Frans Faase's reckoning; to get that I'd have to use Brian's
reckoning but also omit the [ increment in the first sentence iff this
is the second or subsequent iteration.

The counting method currently in pibfi is actually one of the "silly"
ones, where all 'jumps' are considered to be to a [ or ] rather than to
the instruction following.  I think I chose this because I wanted the
counts of [ and ] to match up when a program was finished, for symmetry;
considering jumps to be to the following command would mess that up.

At least - as I understand it.

Anyway, I'll think about some options for modifying the counts to cover
at least a few more cases (it's hard to resist having command line
options called -raiter and -faase :)

> >Ah, yes - pibfi is merely a shadow cast upon this rotten place from a
> >glowing, sparkly realm of purity where cubes are Real Cubes, spheres
> >are Real Spheres, and Brainfuck instructions are Real Brainfuck
> >Instructions
> 
> Now you've got me thinking "small furry creatures from Alpha
> Centauri".

Indeed!  And did you know the Platonic Realm is also full of cocaine?
It's true!  At least, I can't think of a better way to explain Penrose.
:)

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue May 13 02:02:09 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19FMHC-000Ioe-00; Tue, 13 May 2003 02:00:10 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 13 May 2003 01:59:56 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd5mo3so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19FMGo-000Inu-00
	for lang@esoteric.sange.fi; Tue, 13 May 2003 01:59:47 +0300
Received: from pd4mr3so.prod.shaw.ca
 (pd4mr3so-qfe3.prod.shaw.ca [10.0.141.214]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HES00FP4QI6FD@l-daemon> for lang@esoteric.sange.fi; Mon,
 12 May 2003 16:58:54 -0600 (MDT)
Received: from pn2ml10so.prod.shaw.ca
 (pn2ml10so-qfe0.prod.shaw.ca [10.0.121.80])
 by l-daemon (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HES005R5QI6JE@l-daemon> for lang@esoteric.sange.fi; Mon,
 12 May 2003 16:58:54 -0600 (MDT)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with SMTP id <0HES00D97QI5YE@l-daemon> for lang@esoteric.sange.fi; Mon,
 12 May 2003 16:58:54 -0600 (MDT)
Date: Mon, 12 May 2003 17:59:37 -0500
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Turing Completeness
To: lang@esoteric.sange.fi
Message-id: <20030512175937.7d7d48e3.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
X-Spam-Score: -11.3 (-----------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19FMGo-000Inu-00*dQ6gwPmKT/6*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19FMHC-000Ioe-00*oLDU/Fbq1s2*

Espen Suenson <expen@diku.dk> wrote:
> Rune Berge wrote:
> 
> > Is a working brainfuck interpreter sufficient to prove that the
> > language is Turing complete? I'm pretty sure it is, but it'd be nice
> > to have it confirmed.
> 
> If you have a working interpreter you can also construct a formal
> proof of Turing completeness. Most people accept the former as
> sufficient, but it is not stricly mathematically speaking.

Let's be specific: *you* don't consider it to be mathematically
sufficient.  Yes?

Frederic van der Plancke <fvdp@decis.be> wrote:
> The only things I see is:
>   * you have to prove that your interpreter is indeed correct !

Then do you not have to prove that your proof is correct as well?

And what about the language the proof is written in?
Has anyone given a proof that Mathematical English is proof-complete?
And if so, what language did they give that proof in?
And so forth.

So it seems to me that it depends almost entirely on how high your
standards are. 

Personally, I'm quite content with a language that's entertaining, or
useful, or has other redeeming qualities, even if it isn't shown to be
Turing Complete.  It's actually something of a pity that the majority of
the compsci community seems to treat TC like the Grail, as it's purely
a formality when looked at from a practical perspective.

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue May 13 02:04:52 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19FMKO-000IzW-00; Tue, 13 May 2003 02:03:28 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 13 May 2003 02:03:14 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd3mo3so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19FMK1-000Iyl-00
	for lang@esoteric.sange.fi; Tue, 13 May 2003 02:03:05 +0300
Received: from pd2mr1so.prod.shaw.ca (pd2mr1so-ser.prod.shaw.ca [10.0.141.110])
 by l-daemon (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HES00EREQOCUN@l-daemon> for lang@esoteric.sange.fi; Mon,
 12 May 2003 17:02:36 -0600 (MDT)
Received: from pn2ml7so.prod.shaw.ca
 (pn2ml7so-qfe0.prod.shaw.ca [10.0.121.151]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HES00F9ZQOCA3@l-daemon> for lang@esoteric.sange.fi; Mon,
 12 May 2003 17:02:36 -0600 (MDT)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with SMTP id <0HES00D4EQOCPA@l-daemon> for lang@esoteric.sange.fi; Mon,
 12 May 2003 17:02:36 -0600 (MDT)
Date: Mon, 12 May 2003 18:03:19 -0500
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: Re[2]: On the subject of Turing Completeness...
In-reply-to: <1284687953.20030512123854@kuckuk.com>
To: lang@esoteric.sange.fi
Message-id: <20030512180319.69f92867.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
References: <200305120645.30685.steve@wirelessisland.net>
 <562656703.20030512120503@kuckuk.com>
 <200305120718.31933.steve@wirelessisland.net>
 <1284687953.20030512123854@kuckuk.com>
X-Spam-Score: -29.0 (-----------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19FMK1-000Iyl-00*/AzneUYEqDs*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19FMKO-000IzW-00*0SLZILFoyEo*

On Mon, 12 May 2003 12:38:54 +0200
Carsten Kuckuk <ck@kuckuk.com> wrote:

> [...] http://mathworld.wolfram.com/Algorithm.html [...]
> So apparently, there are different definitions around. "Specific Set"
> is general enough to include "infinite sets", and "usually..terminate"
> allows both versions. Seems to be a matter of taste (and belief (and
> teacher (and the purpose you need that definition for (..))))

The termination requirement seems plagued with problems.  Firstly, the
Halting Problem; secondly, if a long-running program intentionally held
in live-lock isn't an algorithm then what the heck is it?

Neither problem seems totally insurmountable I suppose, but still - it
strikes me as awkward.

As for finiteness of the algorithm - well there's another problem,
namely that if all algorithms are finite, what are quines / virii /
other self-modifying programs?

But the constraint of the *initial* algorithm being finite seems fairly
acceptable to me on first blush.  I guess my quandry is: how does one
produce an algorithm of unbounded size, without it coming from another
algorithm?  :)

> In my personal opinion, algorithms only make sense if the
> description of them (in some generally accepted form like C++, RTL,
> Lisp, recursive functions, whatever) is finite, and if algorithms
> terminate after a finite amount of steps for each specific problem
> they're about to solve.
> 
> So "calculate the decimal representation of Pi" is not an algorithm
> (doesn't solve a class of problems, doesn't terminate), but "For a
> given n, n>0, calculate the first n digits in the decimal
> representation of Pi" is.

It's a description of an algorithm, but I don't think it is an
algorithm, because it doesn't specify how to arrive at the result.
Perhaps that's what you meant.

> Carsten

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue May 13 21:05:30 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19Fe6w-0000Hv-00; Tue, 13 May 2003 21:02:46 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 13 May 2003 21:02:31 +0300 (EEST)
Received: from sabre-wulf.nvg.ntnu.no ([129.241.210.67] ident=[jNFZFPgyfNII90EdwhJ8EIO01AfrOE0d])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19Fe6c-0000HQ-00
	for lang@esoteric.sange.fi; Tue, 13 May 2003 21:02:26 +0300
Received: from tyrell.nvg.ntnu.no ([IPv6:::ffff:129.241.210.70]:26308 "EHLO
	tyrell.nvg.ntnu.no" ident: "[+q62rHruKLs9F2Q4JLwxpns0We2n3zoM]" whoson:
	"-unregistered-") by sabre-wulf.nvg.ntnu.no with ESMTP
	id <S438440AbTEMSCU>; Tue, 13 May 2003 20:02:20 +0200
Date:	Tue, 13 May 2003 20:02:20 +0200 (CEST)
From:	Orjan Johansen <oerjan@nvg.ntnu.no>
To:	Esoteric Languages List <lang@esoteric.sange.fi>
Subject: [lang] Re: On the subject of Turing Completeness...
In-Reply-To: <200305120645.30685.steve@wirelessisland.net>
Message-ID: <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no>
References: <200305120645.30685.steve@wirelessisland.net>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
X-Spam-Score: -33.2 (---------------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19Fe6c-0000HQ-00*yN13IxlAT2Y*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19Fe6w-0000Hv-00*ZrphLsAqGGI*

On Mon, 12 May 2003, Stephen Mosher wrote:

> I have an odd question that follows from a conclusion I came to while thi=
nking
> idly about something else...
>
> Has/can it been proven that any algorithm must have a finite length
> representation? I think this is an easy conclusion when you consider that
> some non-TC languages could mimic any algorithm with an infinitely long
> program.
>
> The funny thing is that while you'll never see an infinitely long program
> anywhere, you could actually demonstrate this mimicking by generating and
> streaming this program to the interpreter on the fly, as needed. I'm awar=
e
> that the whole thing would be, essentially, TC in a holistic sense, but
> that's beside the point.
>
> So, are algorithms inherently finite-length when implemented, or am I mis=
sing
> something? I know that this is all thought-experiment, but I think it's
> fairly solid.

It is "easy" to think of "infinite algorithms" which cannot be rephrased
as normal finite ones.  Take the following "algorithm" to solve the
halting problem for finite algorithms (itself unsolvable by finite
algorithms):

read_description(algorithm);
if (algorithm =3D=3D "print(0);")
then print("halts");
elsif (algorithm =3D=3D "print(1+1);")
then print("halts");
elsif ...
(continues listing all possible finite algorithms)

With some care, a version of the above algorithm can be defined precisely
mathematically.  But it cannot even be listed by any finite computer
program, as that would allow the streaming you mention.

Greetings,
=D8rjan.

--=20
My esoteric language page: <http://home.nvg.org/~oerjan/esoteric/>
(Mostly Unlambda.)  Latest contraption:  CHIQRSX9+ interpreter.

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu May 15 15:54:26 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GID9-000OkT-00; Thu, 15 May 2003 15:51:51 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 15 May 2003 15:51:37 +0300 (EEST)
Received: from post.it.helsinki.fi ([128.214.205.24])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GICp-000Ojq-00
	for lang@esoteric.sange.fi; Thu, 15 May 2003 15:51:31 +0300
Received: from xandru.it.helsinki.fi (mail@xandru.it.helsinki.fi [128.214.38.174])
	by post.it.helsinki.fi (8.12.9/8.12.2-SPAMmers-sod-off) with ESMTP id h4FCpVQo006065
	for <lang@esoteric.sange.fi>; Thu, 15 May 2003 15:51:31 +0300 (EEST)
Received: from pkalliok by xandru.it.helsinki.fi with local (Exim 3.36 #1 (Debian))
	id 19GI7Z-00042O-00
	for <lang@esoteric.sange.fi>; Thu, 15 May 2003 15:46:05 +0300
Date: Thu, 15 May 2003 15:46:05 +0300
From: Panu Kalliokoski <pkalliok@cs.helsinki.fi>
To: Esoteric Languages List <lang@esoteric.sange.fi>
Subject: [lang] Re: On the subject of Turing Completeness...
Message-ID: <20030515124605.GC15451@ling.helsinki.fi>
Mail-Followup-To: Esoteric Languages List <lang@esoteric.sange.fi>
References: <200305120645.30685.steve@wirelessisland.net> <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no>
User-Agent: Mutt/1.5.3i
Sender: Panu Kalliokoski <pkalliok@xandru.it.helsinki.fi>
X-Spam-Score: -38.0 (--------------------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GICp-000Ojq-00*2DtPP0zDAEc*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.helsinki.fi
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GID9-000OkT-00*JAJpW1./jkU*

On Mon, 12 May 2003, Stephen Mosher wrote:
> > Has/can it been proven that any algorithm must have a finite length
> > representation? I think this is an easy conclusion when you consider that
> > some non-TC languages could mimic any algorithm with an infinitely long
> > program.

As others noted, the definition of "algorithm" is vague enough to allow
either interpretation.  IMO, there's nothing intrinsically finitary in
the class of things called 'algorithms'.

I'm not quite sure what is the "level" of the concept of algorithm.  I
don't agree with Chris that a program executing is an algorithm.  The
program's source might be, but often you see different sources referred
to as using the same "algorithm", so it might be even higher-level, on
conceptual level.

Anyway, if we take algorithm to mean a description of a computation, I
think an infinite algorithm X in language L and a finite algorithm Y in
langauge K that produces X, combined with a finite implementation of
language L in language K, are in some sense the same algorithm.  This is
especially clear in lambda calculus, where computations and their
results are of the same type.  Any computation might include many
subresults which are potentially infinite, and which might be separated
from the computation as "infinite algorithms".

On Tue, May 13, 2003 at 08:02:20PM +0200, Orjan Johansen wrote:
> It is "easy" to think of "infinite algorithms" which cannot be rephrased
> as normal finite ones.  Take the following "algorithm" to solve the
> halting problem for finite algorithms (itself unsolvable by finite
> algorithms):
[...]
> With some care, a version of the above algorithm can be defined precisely
> mathematically.  But it cannot even be listed by any finite computer
> program, as that would allow the streaming you mention.

How come?  Isn't the set of algorithms enumerable, meaning that it can
be listed by a non-terminating algorithm?

-- 
personal contact: atehwa@iki.fi, +35841 5323835
work contact: pkalliok@ling.helsinki.fi, +35850 3678003
kotisivu (henkkoht):	http://www.iki.fi/atehwa/
homepage (technical):	http://sange.fi/~atehwa/

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu May 15 20:12:09 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GMF8-000BiJ-00; Thu, 15 May 2003 20:10:10 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 15 May 2003 20:09:55 +0300 (EEST)
Received: from sabre-wulf.nvg.ntnu.no ([129.241.210.67] ident=[R7FyiY+dAmPJrv1QYTfBJ52NtqUSWlwS])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GMEn-000Bhl-00
	for lang@esoteric.sange.fi; Thu, 15 May 2003 20:09:49 +0300
Received: from tyrell.nvg.ntnu.no ([IPv6:::ffff:129.241.210.70]:22156 "EHLO
	tyrell.nvg.ntnu.no" ident: "[pHaxvfE51Zf2I24Nha+qH7aqh62RNPoO]" whoson:
	"-unregistered-") by sabre-wulf.nvg.ntnu.no with ESMTP
	id <S438277AbTEORJd>; Thu, 15 May 2003 19:09:33 +0200
Date:	Thu, 15 May 2003 19:09:33 +0200 (CEST)
From:	Orjan Johansen <oerjan@nvg.ntnu.no>
To:	Esoteric Languages List <lang@esoteric.sange.fi>
Subject: [lang] Re: On the subject of Turing Completeness...
In-Reply-To: <20030515124605.GC15451@ling.helsinki.fi>
Message-ID: <Pine.LNX.4.52.0305151903490.13133@tyrell.nvg.ntnu.no>
References: <200305120645.30685.steve@wirelessisland.net>
 <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no>
 <20030515124605.GC15451@ling.helsinki.fi>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
X-Spam-Score: -38.0 (--------------------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GMEn-000Bhl-00*hSo3YQcPaEw*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GMF8-000BiJ-00*mbnmm9j8Gxg*

On Thu, 15 May 2003, Panu Kalliokoski wrote:

> On Tue, May 13, 2003 at 08:02:20PM +0200, Orjan Johansen wrote:
> > It is "easy" to think of "infinite algorithms" which cannot be rephrase=
d
> > as normal finite ones.  Take the following "algorithm" to solve the
> > halting problem for finite algorithms (itself unsolvable by finite
> > algorithms):

Which was essentially

if input =3D "print 0" then print "halts"
elsif input =3D "print 'argle bargle, glop glyf'" then print "halts"
elsif ...

(listing each possibility for input)

> > With some care, a version of the above algorithm can be defined precise=
ly
> > mathematically.  But it cannot even be listed by any finite computer
> > program, as that would allow the streaming you mention.
>
> How come?  Isn't the set of algorithms enumerable, meaning that it can
> be listed by a non-terminating algorithm?

You can list each algorithm, but you cannot list the correct print
statement with each one.

Greetings,
=D8rjan.

--=20
My esoteric language page: <http://home.nvg.org/~oerjan/esoteric/>
(Mostly Unlambda.)  Latest contraption:  CHIQRSX9+ interpreter.

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu May 15 21:14:53 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GND1-000EuZ-00; Thu, 15 May 2003 21:12:03 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 15 May 2003 21:11:48 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd5mo1so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GNCh-000Eu1-00
	for lang@esoteric.sange.fi; Thu, 15 May 2003 21:11:43 +0300
Received: from pd4mr3so.prod.shaw.ca
 (pd4mr3so-qfe3.prod.shaw.ca [10.0.141.214]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HEX00LQHX0Z9G@l-daemon> for lang@esoteric.sange.fi; Thu,
 15 May 2003 12:07:47 -0600 (MDT)
Received: from pn2ml3so.prod.shaw.ca
 (pn2ml3so-qfe0.prod.shaw.ca [10.0.121.147]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HEX00JARX0ZHI@l-daemon> for lang@esoteric.sange.fi; Thu,
 15 May 2003 12:07:47 -0600 (MDT)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with SMTP id <0HEX005TVX0YSY@l-daemon> for lang@esoteric.sange.fi; Thu,
 15 May 2003 12:07:47 -0600 (MDT)
Date: Thu, 15 May 2003 13:08:35 -0500
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: On the subject of Turing Completeness...
In-reply-to: <20030515124605.GC15451@ling.helsinki.fi>
To: lang@esoteric.sange.fi
Message-id: <20030515130835.124dd8ec.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
References: <200305120645.30685.steve@wirelessisland.net>
 <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no>
 <20030515124605.GC15451@ling.helsinki.fi>
X-Spam-Score: -31.7 (-------------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GNCh-000Eu1-00*X4EVgUM4MXo*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GND1-000EuZ-00*hlWHJq1/6GE*

On Thu, 15 May 2003 15:46:05 +0300
Panu Kalliokoski <pkalliok@cs.helsinki.fi> wrote:
> I'm not quite sure what is the "level" of the concept of algorithm.  I
> don't agree with Chris that a program executing is an algorithm.

Sorry if you got the impression that I believe that they're the same
thing; I didn't mean for that to come across, but I was a bit sloppy in
my wording.

Putting aside the question of whether a program "is" an algorithm, I
think we can agree that every program represents some algorithm.  So
we can reasonably say that there are livelocked algorithms and
self-modifying algorithms.

If you take a self-modifying program and freeze it at any given point
and dump it, that dump represents a finite algorithm.

But because it's modifying itself as it goes, that finite algorithm is
only part of a larger, possibly unbounded, um, "meta-algorithm".  And I
really don't know what that means w.r.t. the finiteness of algorithms.

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu May 15 21:22:15 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GNLO-000FOl-00; Thu, 15 May 2003 21:20:42 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 15 May 2003 21:20:27 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd2mo1so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GNL3-000FNq-00
	for lang@esoteric.sange.fi; Thu, 15 May 2003 21:20:22 +0300
Received: from pd3mr2so.prod.shaw.ca
 (pd3mr2so-qfe3.prod.shaw.ca [10.0.141.178]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HEX00LG4XFIR5@l-daemon> for lang@esoteric.sange.fi; Thu,
 15 May 2003 12:16:30 -0600 (MDT)
Received: from pn2ml9so.prod.shaw.ca (pn2ml9so-qfe0.prod.shaw.ca [10.0.121.7])
 by l-daemon (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HEX00ELYXFIJQ@l-daemon> for lang@esoteric.sange.fi; Thu,
 15 May 2003 12:16:30 -0600 (MDT)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with SMTP id <0HEX00H7ZXFIY6@l-daemon> for lang@esoteric.sange.fi; Thu,
 15 May 2003 12:16:30 -0600 (MDT)
Date: Thu, 15 May 2003 13:17:19 -0500
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: On the subject of Turing Completeness...
In-reply-to: <Pine.LNX.4.52.0305151903490.13133@tyrell.nvg.ntnu.no>
To: lang@esoteric.sange.fi
Message-id: <20030515131719.4d64b3fc.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
References: <200305120645.30685.steve@wirelessisland.net>
 <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no>
 <20030515124605.GC15451@ling.helsinki.fi>
 <Pine.LNX.4.52.0305151903490.13133@tyrell.nvg.ntnu.no>
X-Spam-Score: -31.7 (-------------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GNL3-000FNq-00*E3tbQAPwm4I*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GNLO-000FOl-00*4EcBnWK1UJw*

On Thu, 15 May 2003 19:09:33 +0200 (CEST)
Orjan Johansen <oerjan@nvg.ntnu.no> wrote:

> [...]
> if input = "print 0" then print "halts"
> elsif input = "print 'argle bargle, glop glyf'" then print "halts"
> elsif ...
> > [Panu:]
> > How come?  Isn't the set of algorithms enumerable, meaning that it can
> > be listed by a non-terminating algorithm?
> 
> You can list each algorithm, but you cannot list the correct print
> statement with each one.

Stupid question: could you not use pattern matching (wildcards/regexes/?)

if input matches "print //constant//" then print "halts"

?

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu May 15 21:29:35 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GNSY-000FpJ-00; Thu, 15 May 2003 21:28:06 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 15 May 2003 21:27:52 +0300 (EEST)
Received: from mail.rib.de ([213.68.181.228])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GNSE-000Fmn-00
	for lang@esoteric.sange.fi; Thu, 15 May 2003 21:27:47 +0300
Received: from 172.16.17.6 by mail.rib.de ([213.68.181.228] running VPOP3) with ESMTP; Thu, 15 May 2003 20:27:06 +0200
Date: Thu, 15 May 2003 20:27:04 +0200
From: Carsten Kuckuk <ck@kuckuk.com>
X-Mailer: The Bat! (v1.61) Personal
X-Priority: 3 (Normal)
Message-ID: <10432897250.20030515202704@kuckuk.com>
To: Chris Pressey <cpressey@catseye.mb.ca>
CC: lang@esoteric.sange.fi
Subject: [lang] Re: On the subject of Turing Completeness...
In-Reply-To: <20030515130835.124dd8ec.cpressey@catseye.mb.ca>
References: <200305120645.30685.steve@wirelessisland.net> <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no> <20030515124605.GC15451@ling.helsinki.fi> <20030515130835.124dd8ec.cpressey@catseye.mb.ca>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Spam-Score: -27.5 (---------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GNSE-000Fmn-00*hrkK6imAgvs*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: ck@kuckuk.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GNSY-000FpJ-00*G.D9o6Kc0/U*

Hello Chris,

Thursday, May 15, 2003, 8:08:35 PM, you wrote:

CP> On Thu, 15 May 2003 15:46:05 +0300
CP> Panu Kalliokoski <pkalliok@cs.helsinki.fi> wrote:
>> I'm not quite sure what is the "level" of the concept of algorithm.  I
>> don't agree with Chris that a program executing is an algorithm.

CP> Sorry if you got the impression that I believe that they're the same
CP> thing; I didn't mean for that to come across, but I was a bit sloppy in
CP> my wording.

What about this: An algorithm is an equivalence class of (parts of)
programs that -- according to some equivalence relation -- perform the
same thing. This way, the differences between pascal, c, c++, cobol,
etc. could be abstracted away.

CP> Putting aside the question of whether a program "is" an algorithm, I
CP> think we can agree that every program represents some algorithm.  So
CP> we can reasonably say that there are livelocked algorithms and
CP> self-modifying algorithms.

I beg to differ. Take a look at real-time systems. The programs used
for control applications never terminate, but they repeat the same
steps as long as they run. I'd call one single iteration the
implementation of an algorithm. But the whole thing that runs for
eternity?


CP> If you take a self-modifying program and freeze it at any given point
CP> and dump it, that dump represents a finite algorithm.

CP> But because it's modifying itself as it goes, that finite algorithm is
CP> only part of a larger, possibly unbounded, um, "meta-algorithm".  And I
CP> really don't know what that means w.r.t. the finiteness of algorithms.

Would it help to add a layer of indirection? A self modifying program
could be thought of as an interpreter plus a data structure
representing the program. The interpreter itself is pretty static, but
the data structure it operates on, gets modified.

Carsten


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu May 15 22:07:11 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GO2l-000Hji-00; Thu, 15 May 2003 22:05:31 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 15 May 2003 22:05:16 +0300 (EEST)
Received: from sabre-wulf.nvg.ntnu.no ([129.241.210.67] ident=[iUtlg9EiR0DChDgR22fqXxIgN/+Cu1x8])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GO2H-000Him-00
	for lang@esoteric.sange.fi; Thu, 15 May 2003 22:05:01 +0300
Received: from tyrell.nvg.ntnu.no ([IPv6:::ffff:129.241.210.70]:35214 "EHLO
	tyrell.nvg.ntnu.no" ident: "[HORiVaGNIOCfIZiu0PB3t0UMmCrY20V2]" whoson:
	"-unregistered-") by sabre-wulf.nvg.ntnu.no with ESMTP
	id <S438548AbTEOTEx>; Thu, 15 May 2003 21:04:53 +0200
Date:	Thu, 15 May 2003 21:04:53 +0200 (CEST)
From:	Orjan Johansen <oerjan@nvg.ntnu.no>
To:	lang@esoteric.sange.fi
Subject: [lang] Re: On the subject of Turing Completeness...
In-Reply-To: <20030515131719.4d64b3fc.cpressey@catseye.mb.ca>
Message-ID: <Pine.LNX.4.52.0305152056480.17512@tyrell.nvg.ntnu.no>
References: <200305120645.30685.steve@wirelessisland.net>
 <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no>
 <20030515124605.GC15451@ling.helsinki.fi> <Pine.LNX.4.52.0305151903490.13133@tyrell.nvg.ntnu.no>
 <20030515131719.4d64b3fc.cpressey@catseye.mb.ca>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
X-Spam-Score: -37.4 (-------------------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GO2H-000Him-00*Y9vVQv6kggg*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GO2l-000Hji-00*9cscPpq2nOU*

On Thu, 15 May 2003, Chris Pressey wrote:

> On Thu, 15 May 2003 19:09:33 +0200 (CEST)
> Orjan Johansen <oerjan@nvg.ntnu.no> wrote:
[snip]
> > You can list each algorithm, but you cannot list the correct print
> > statement with each one.
>
> Stupid question: could you not use pattern matching (wildcards/regexes/?)
>
> if input matches "print //constant//" then print "halts"
>
> ?

Of course you could, but if you used that to build an infinite algorithm
for the halting problem you still wouldn't be able to list it.

The same would hold true for any devices used in infinite algorithms, as
long as you can write a finite algorithm to interpret the infinite ones.

Greetings,
=D8rjan.

--=20
My esoteric language page: <http://home.nvg.org/~oerjan/esoteric/>
(Mostly Unlambda.)  Latest contraption:  CHIQRSX9+ interpreter.

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Fri May 16 00:11:39 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GPyt-000NqU-00; Fri, 16 May 2003 00:09:39 +0300
Received: with LISTAR (v0.129a; list lang); Fri, 16 May 2003 00:09:25 +0300 (EEST)
Received: from pop.hevanet.com ([198.5.254.15])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GPyZ-000Npt-00
	for lang@esoteric.sange.fi; Fri, 16 May 2003 00:09:19 +0300
Received: from [130.94.161.238] (130-94-161-238-dsl.hevanet.com [130.94.161.238])
	by pop.hevanet.com (8.11.6p2/8.11.6p2) with ESMTP id h4FL9FC88577
	for <lang@esoteric.sange.fi>; Thu, 15 May 2003 14:09:16 -0700 (PDT)
Mime-Version: 1.0
X-Sender: cristofd@pop.hevanet.com
Message-Id: <a05111b00bae9a416cb8c@[130.94.161.238]>
In-Reply-To: <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no>
References: <200305120645.30685.steve@wirelessisland.net>
 <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no>
Date: Thu, 15 May 2003 14:09:17 -0700
To: lang@esoteric.sange.fi
From: "Daniel." <cristofd@hevanet.com>
Subject: [lang] Re: On the subject of Turing Completeness...
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
X-Spam-Score: -12.8 (------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GPyZ-000Npt-00*njRwdGJMcaE*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cristofd@hevanet.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GPyt-000NqU-00*ub0jXFbPKpE*

>It is "easy" to think of "infinite algorithms" which cannot be rephrased
>as normal finite ones.

Here's another approach to proving this. Any given real number can 
easily be output by an "infinite algorithm", e.g.:
print "6"
print "8"
print "."
print "1"
print "6"
print "2"
print "2"
...

But only a countable-infinite subset of the real numbers can be 
output by finite algorithms (given finite input). This can be proved 
by listing the algorithm-input pairs, in any chosen finite language, 
and assigning a natural number to each one. So "most" real numbers 
are uncomputable with finite algorithms, and are incidentally 
uncomputable with infinite algorithms generated by finite algorithms, 
or with initially finite self-modifying algorithms (either of those 
being translatable to a finite algorithm by introducing a lower layer 
of abstraction as Carsten Kuckuk mentioned).

-Daniel.
-- 
>>>++[<++++++++[<[<++>-]>>[>>]+>>+[-[->>+<<<[<[<<]<+>]>[>[>>]]]<[>>>>[-<<[-]]
+<[<+<]]>[<]+<<]<[>+<-]>>-]<.[-]>>]http://www.hevanet.com/cristofd/brainfuck/

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Fri May 16 02:31:16 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GSA9-0004cg-00; Fri, 16 May 2003 02:29:25 +0300
Received: with LISTAR (v0.129a; list lang); Fri, 16 May 2003 02:29:11 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd2mo1so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GS9p-0004c8-00
	for lang@esoteric.sange.fi; Fri, 16 May 2003 02:29:05 +0300
Received: from pd6mr2so.prod.shaw.ca
 (pd6mr2so-qfe3.prod.shaw.ca [10.0.141.217]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HEY009P6BRYIK@l-daemon> for lang@esoteric.sange.fi; Thu,
 15 May 2003 17:26:22 -0600 (MDT)
Received: from pn2ml5so.prod.shaw.ca
 (pn2ml5so-qfe0.prod.shaw.ca [10.0.121.149]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HEY001ANBRYY9@l-daemon> for lang@esoteric.sange.fi; Thu,
 15 May 2003 17:26:22 -0600 (MDT)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with SMTP id <0HEY004P6BRXB0@l-daemon> for lang@esoteric.sange.fi; Thu,
 15 May 2003 17:26:22 -0600 (MDT)
Date: Thu, 15 May 2003 18:27:10 -0500
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: On the subject of Turing Completeness...
In-reply-to: <10432897250.20030515202704@kuckuk.com>
To: lang@esoteric.sange.fi
Message-id: <20030515182710.145e6150.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
References: <200305120645.30685.steve@wirelessisland.net>
 <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no>
 <20030515124605.GC15451@ling.helsinki.fi>
 <20030515130835.124dd8ec.cpressey@catseye.mb.ca>
 <10432897250.20030515202704@kuckuk.com>
X-Spam-Score: -29.0 (-----------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GS9p-0004c8-00*QhYGJd5mEDI*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GSA9-0004cg-00*KoZVjeuv6Bg*

On Thu, 15 May 2003 20:27:04 +0200
Carsten Kuckuk <ck@kuckuk.com> wrote:

> Hello Chris,

'lo Carsten,

> What about this: An algorithm is an equivalence class of (parts of)
> programs that -- according to some equivalence relation -- perform the
> same thing.

With the same complexity.  (Otherwise quicksort and bubblesort are the
same algorithm, no?)

Even then, maybe not.  If you have two different sort algorithms with
the same complexity, are they then the same algorithm?

If not, then you can't "black box" the equivalence relation (which is
too bad because it'd be a lot simpler that way.)

> This way, the differences between pascal, c, c++, cobol,
> etc. could be abstracted away.

One would hope.  However - I worry about little details.  For example,
can quicksort even be implemented in (unoptimized) Brainfuck in such a
way that it has the same complexity as it does in C?  (I tend to think a
Brainfuck optimizer that can reduce complexity of any given Brainfuck
program to C-like levels is a theoretical possibility, but disregarding
that possibility for the moment, it almost suggests that algorithms are
inherently entwined with the language in which they're specified, quite
counter to the intuitive approach of thinking of them as conceptual
abstractions...)

> CP> Putting aside the question of whether a program "is" an algorithm,
> CP> I think we can agree that every program represents some algorithm.
> CP>  So
> CP> we can reasonably say that there are livelocked algorithms and
> CP> self-modifying algorithms.
> 
> I beg to differ. Take a look at real-time systems. The programs used
> for control applications never terminate, but they repeat the same
> steps as long as they run. I'd call one single iteration the
> implementation of an algorithm. But the whole thing that runs for
> eternity?

Well, my question still stands: if we can't call it an algorithm, what
*can* we call it?  I can't think of a commonly-accepted term for such a
beast, offhand.

The thing that says "keep applying X ad infinitum" sure seems to me to
have all the hallmarks of an algorithm except the termination
requirement.  It can be described as a specific set of instructions, it
carries out a procedure, it can be implemented equivalently in different
languages... if it's not an algorithm, it's darned close.

> CP> If you take a self-modifying program and freeze it at any given
> CP> point and dump it, that dump represents a finite algorithm.
> 
> CP> But because it's modifying itself as it goes, that finite
> CP> algorithm is only part of a larger, possibly unbounded, um,
> CP> "meta-algorithm".  And I really don't know what that means w.r.t.
> CP> the finiteness of algorithms.
> 
> Would it help to add a layer of indirection? A self modifying program
> could be thought of as an interpreter plus a data structure
> representing the program. The interpreter itself is pretty static, but
> the data structure it operates on, gets modified.
>
> Carsten

Sorry, I don't think it would help :(

The data structure now represents the algorithm.  In fact, the data
structure is, for all intents and purposes, a program.

But it does illustrate that for any language/machine there is some
algorithm for interpreting/executing programs written for it.  What we
can learn from this, I'm not sure - perhaps that no concrete
representation of an algorithm stands alone...?  That would heavily
imply, if nothing else, that English is Turing-Complete, since even the
original Turing machine (I believe) was first described in English.  Of
course, that's really no surprise - the problem with English is not its
lack of computational expressivity, but its ambiguity.

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Fri May 16 02:37:19 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GSGM-0004xQ-00; Fri, 16 May 2003 02:35:50 +0300
Received: with LISTAR (v0.129a; list lang); Fri, 16 May 2003 02:35:36 +0300 (EEST)
Received: from pop.hevanet.com ([198.5.254.15])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GSG2-0004wu-00
	for lang@esoteric.sange.fi; Fri, 16 May 2003 02:35:30 +0300
Received: from [130.94.161.238] (130-94-161-238-dsl.hevanet.com [130.94.161.238])
	by pop.hevanet.com (8.11.6p2/8.11.6p2) with ESMTP id h4FNZSj81371
	for <lang@esoteric.sange.fi>; Thu, 15 May 2003 16:35:28 -0700 (PDT)
Mime-Version: 1.0
X-Sender: cristofd@pop.hevanet.com
Message-Id: <a05111b03bae9c87758a0@[130.94.161.238]>
In-Reply-To: <20030512163824.3439af83.cpressey@catseye.mb.ca>
References: <20030423142618.396fd0c0.cpressey@catseye.mb.ca>
 <20030426193010.04353493.cpressey@catseye.mb.ca>
 <a05111b03bad33a8b6322@[130.94.161.238]>
 <20030506012800.563d4392.cpressey@catseye.mb.ca>
 <a05111b00baddc2566cb1@[130.94.161.238]>
 <20030509115153.502adfca.cpressey@catseye.mb.ca>
 <a05111b00bae196d57732@[130.94.161.238]>
 <20030512163824.3439af83.cpressey@catseye.mb.ca>
Date: Thu, 15 May 2003 16:35:26 -0700
To: lang@esoteric.sange.fi
From: "Daniel." <cristofd@hevanet.com>
Subject: [lang] Re: [bf] pibfi-2003.0505
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
X-Spam-Score: -15.5 (---------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GSG2-0004wu-00*DCVhRAC6UNg*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cristofd@hevanet.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GSGM-0004xQ-00*5MHwdW0KUgE*

>That's certainly how it's implemented in pibfi.

<snip detail>

>The counting method currently in pibfi is actually one of the "silly"
>ones, where all 'jumps' are considered to be to a [ or ] rather than to
>the instruction following.  I think I chose this because I wanted the
>counts of [ and ] to match up when a program was finished, for symmetry;
>considering jumps to be to the following command would mess that up.

This is all very clear, except I don't think your version IS the 
"silly" one; in the case of a loop whose body is executed once, one 
"silly" version:
"[ means jump to the matching ] if zero;
] means jump to the matching [ if nonzero"
would give a count of 1 for [ and 1 for ], whereas pibfi would give a 
count of 2 for each...and the other two silly versions give counts 
that are lower than that one, when they differ from it.

>At least - as I understand it.
>
>Anyway, I'll think about some options for modifying the counts to cover
>at least a few more cases (it's hard to resist having command line
>options called -raiter and -faase :)

It looks like if you just remove the incrementing of ] when the cell 
is zero, to reproduce Brian Raiter's reckoning as you described, your 
present version and the three "sensible" versions can all be 
reconstructed when it's time to display the totals: calling the 
Raiter counts for [ and ] "A" and "B" instead, since different totals 
for [ and ] can be derived from them:

The present version is: [ is A, ] is A.
Raiter's: [ is A, ] is B (naturally).
Faase's: [ is A-B, ] is B.
Other "sensible": [ is A-B, ] is A.
Considering [] as a single construct instead of two instructions:
Number of times a [] is executed (test made): A.
Number of times a loop body is executed: B.

>Indeed!  And did you know the Platonic Realm is also full of cocaine?
>It's true!  At least, I can't think of a better way to explain Penrose.
>:)

*8)#

-Daniel.
-- 
>>>++[<++++++++[<[<++>-]>>[>>]+>>+[-[->>+<<<[<[<<]<+>]>[>[>>]]]<[>>>>[-<<[-]]
+<[<+<]]>[<]+<<]<[>+<-]>>-]<.[-]>>]http://www.hevanet.com/cristofd/brainfuck/

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Fri May 16 02:56:48 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GSZA-0006EB-00; Fri, 16 May 2003 02:55:16 +0300
Received: with LISTAR (v0.129a; list lang); Fri, 16 May 2003 02:55:02 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd3mo3so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GSYq-0006DU-00
	for lang@esoteric.sange.fi; Fri, 16 May 2003 02:54:57 +0300
Received: from pd5mr4so.prod.shaw.ca
 (pd5mr4so-qfe3.prod.shaw.ca [10.0.141.168]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HEY001EHCSRBV@l-daemon> for lang@esoteric.sange.fi; Thu,
 15 May 2003 17:48:28 -0600 (MDT)
Received: from pn2ml10so.prod.shaw.ca
 (pn2ml10so-qfe0.prod.shaw.ca [10.0.121.80])
 by l-daemon (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HEY00EPMCSRBE@l-daemon> for lang@esoteric.sange.fi; Thu,
 15 May 2003 17:48:28 -0600 (MDT)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with SMTP id <0HEY00ASCCSRTF@l-daemon> for lang@esoteric.sange.fi; Thu,
 15 May 2003 17:48:27 -0600 (MDT)
Date: Thu, 15 May 2003 18:49:16 -0500
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: On the subject of Turing Completeness...
In-reply-to: <a05111b00bae9a416cb8c@[130.94.161.238]>
To: lang@esoteric.sange.fi
Message-id: <20030515184916.6f64ea36.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
References: <200305120645.30685.steve@wirelessisland.net>
 <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no>
 <a05111b00bae9a416cb8c@[130.94.161.238]>
X-Spam-Score: -29.0 (-----------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GSYq-0006DU-00*URotFVGLC.w*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GSZA-0006EB-00*njbQsLuSTkM*

On Thu, 15 May 2003 14:09:17 -0700
"Daniel." <cristofd@hevanet.com> wrote:

> But only a countable-infinite subset of the real numbers can be 
> output by finite algorithms (given finite input). This can be proved 
> by listing the algorithm-input pairs, in any chosen finite language, 
> and assigning a natural number to each one.

OK - now I'm really confused.  Mainly because I don't understand
countability, a fact that I shall now happily demonstrate:

Would it not be possible, with a variation on this, to show that all
positive real numbers can be mapped to natural numbers with a
sufficiently clever mapping scheme?  Such as:

1/1                            1
1/2 2/1                        2  3
1/3 2/2 3/1                    4  5  6
1/4 2/3 3/2 4/1                7  8  9 10
1/5 2/4 3/3 4/2 5/1           11 12 13 14 15
1/6 2/5 3/4 4/3 5/2 6/1       16 17 18 19 20 21
1/7 2/6 3/5 4/4 5/3 6/2 7/1   22 23 24 25 26 27 28
...                            ...

I'm certainly not trying to turn the world of set theory on its head
here, I would just be really interested in understanding why that does
not show that all positive real numbers are countable - is it simply
because the numbers on the left do not grow as quickly as the numbers on
the right?

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Fri May 16 03:08:15 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GSkD-0006uv-00; Fri, 16 May 2003 03:06:41 +0300
Received: with LISTAR (v0.129a; list lang); Fri, 16 May 2003 03:06:26 +0300 (EEST)
Received: from pool-209-158-202-205.rich.east.verizon.net
	([209.158.202.205] helo=wavelet.ath.cx ident=mail)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GSjr-0006tz-00
	for lang@esoteric.sange.fi; Fri, 16 May 2003 03:06:21 +0300
Received: from matt by wavelet.ath.cx with local (Exim 3.36 #1)
	id 19GSjS-0000m8-00
	for lang@esoteric.sange.fi; Thu, 15 May 2003 20:05:54 -0400
Date: Thu, 15 May 2003 20:05:54 -0400
From: Matthew Wright <matt@wavelet.ath.cx>
To: lang@esoteric.sange.fi
Subject: [lang] Re: On the subject of Turing Completeness...
Message-ID: <20030516000554.GA2964@debian>
References: <200305120645.30685.steve@wirelessisland.net> <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no> <a05111b00bae9a416cb8c@[130.94.161.238]> <20030515184916.6f64ea36.cpressey@catseye.mb.ca>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20030515184916.6f64ea36.cpressey@catseye.mb.ca>
User-Agent: Mutt/1.5.4i
X-Spam-Score: -33.3 (---------------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GSjr-0006tz-00*s7eQMdgBgbI*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: matt@wavelet.ath.cx
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GSkD-0006uv-00*2e7UPnTjiuA*

On Thu, May 15, 2003 at 06:49:16PM -0500, Chris Pressey wrote:
> ...                            ...
> 
> I'm certainly not trying to turn the world of set theory on its head
> here, I would just be really interested in understanding why that does
> not show that all positive real numbers are countable - is it simply
> because the numbers on the left do not grow as quickly as the numbers on
> the right?

Nope; it's because you've only counted the rationals... and they _are_
countable. To show that we can't do this with the irrationals, imagine
that we have a list of every irrational (we'll say between 0 and 1;
it's easy to map that interval to all the reals). We can find a number
that's not on our list. Just find a number whose first digit is not
the first digit of the 1st number, whose second digit is not the
second digit of the second one, etc.

Well, our number is different from every number on our list by at
least one digit. So our list doesn't have all of the irrationals,
contradicting our assumption about the list.

I have no idea how the proofs work for even higher cardinalities,
though. I hear that there are more curves on the plane than
irrationals.

Matthew

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Fri May 16 03:08:22 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GSkg-0006wa-00; Fri, 16 May 2003 03:07:10 +0300
Received: with LISTAR (v0.129a; list lang); Fri, 16 May 2003 03:06:56 +0300 (EEST)
Received: from pop.hevanet.com ([198.5.254.15])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GSkM-0006w2-00
	for lang@esoteric.sange.fi; Fri, 16 May 2003 03:06:50 +0300
Received: from [130.94.161.238] (130-94-161-238-dsl.hevanet.com [130.94.161.238])
	by pop.hevanet.com (8.11.6p2/8.11.6p2) with ESMTP id h4G06mj99642
	for <lang@esoteric.sange.fi>; Thu, 15 May 2003 17:06:48 -0700 (PDT)
Mime-Version: 1.0
X-Sender: cristofd@pop.hevanet.com
Message-Id: <a05111b04bae9dae3ac88@[130.94.161.238]>
In-Reply-To: <20030515184916.6f64ea36.cpressey@catseye.mb.ca>
References: <200305120645.30685.steve@wirelessisland.net>
 <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no>
 <a05111b00bae9a416cb8c@[130.94.161.238]>
 <20030515184916.6f64ea36.cpressey@catseye.mb.ca>
Date: Thu, 15 May 2003 17:06:47 -0700
To: lang@esoteric.sange.fi
From: "Daniel." <cristofd@hevanet.com>
Subject: [lang] Re: On the subject of Turing Completeness...
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
X-Spam-Score: -25.8 (-------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GSkM-0006w2-00*1Hj9wZCzvxY*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cristofd@hevanet.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GSkg-0006wa-00*fbCOZaoXPuY*

>  > But only a countable-infinite subset of the real numbers can be
>>  output by finite algorithms (given finite input). This can be proved
>>  by listing the algorithm-input pairs, in any chosen finite language,
>>  and assigning a natural number to each one.
>
>OK - now I'm really confused.  Mainly because I don't understand
>countability, a fact that I shall now happily demonstrate:
>
>Would it not be possible, with a variation on this, to show that all
>positive real numbers can be mapped to natural numbers with a
>sufficiently clever mapping scheme?  Such as:
>
>1/1                            1
>1/2 2/1                        2  3
>1/3 2/2 3/1                    4  5  6
>1/4 2/3 3/2 4/1                7  8  9 10
>1/5 2/4 3/3 4/2 5/1           11 12 13 14 15
>1/6 2/5 3/4 4/3 5/2 6/1       16 17 18 19 20 21
>1/7 2/6 3/5 4/4 5/3 6/2 7/1   22 23 24 25 26 27 28
>...                            ...

Nope. That shows that all RATIONAL numbers can be mapped to natural 
numbers. And that can be extended to certain large classes of 
irrational numbers, e.g. those that are roots of rational numbers. 
But it can't be done for all real numbers.
-Daniel.
-- 
>>>++[<++++++++[<[<++>-]>>[>>]+>>+[-[->>+<<<[<[<<]<+>]>[>[>>]]]<[>>>>[-<<[-]]
+<[<+<]]>[<]+<<]<[>+<-]>>-]<.[-]>>]http://www.hevanet.com/cristofd/brainfuck/

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Fri May 16 03:30:53 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GT65-0008A5-00; Fri, 16 May 2003 03:29:17 +0300
Received: with LISTAR (v0.129a; list lang); Fri, 16 May 2003 03:29:03 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd4mo1so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GT5k-00089X-00
	for lang@esoteric.sange.fi; Fri, 16 May 2003 03:28:57 +0300
Received: from pd4mr4so.prod.shaw.ca
 (pd4mr4so-qfe3.prod.shaw.ca [10.0.141.215]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HEY00CACEGSNX@l-daemon> for lang@esoteric.sange.fi; Thu,
 15 May 2003 18:24:28 -0600 (MDT)
Received: from pn2ml3so.prod.shaw.ca
 (pn2ml3so-qfe0.prod.shaw.ca [10.0.121.147]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HEY0047HEGS9K@l-daemon> for lang@esoteric.sange.fi; Thu,
 15 May 2003 18:24:28 -0600 (MDT)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with SMTP id <0HEY00B02EGSPP@l-daemon> for lang@esoteric.sange.fi; Thu,
 15 May 2003 18:24:28 -0600 (MDT)
Date: Thu, 15 May 2003 19:25:17 -0500
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: On the subject of Turing Completeness...
In-reply-to: <a05111b04bae9dae3ac88@[130.94.161.238]>
To: lang@esoteric.sange.fi
Message-id: <20030515192517.47a774af.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies
MIME-version: 1.0
X-Mailer: Sylpheed version 0.8.10 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
References: <200305120645.30685.steve@wirelessisland.net>
 <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no>
 <a05111b00bae9a416cb8c@[130.94.161.238]>
 <20030515184916.6f64ea36.cpressey@catseye.mb.ca>
 <a05111b04bae9dae3ac88@[130.94.161.238]>
X-Spam-Score: -33.1 (---------------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GT5k-00089X-00*JhMYZxjD.GU*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GT65-0008A5-00*DmUL.8tQoPc*

On Thu, 15 May 2003 17:06:47 -0700
"Daniel." <cristofd@hevanet.com> wrote:

> >
> >1/1                            1
> >1/2 2/1                        2  3
> >1/3 2/2 3/1                    4  5  6
> >1/4 2/3 3/2 4/1                7  8  9 10
> >1/5 2/4 3/3 4/2 5/1           11 12 13 14 15
> >1/6 2/5 3/4 4/3 5/2 6/1       16 17 18 19 20 21
> >1/7 2/6 3/5 4/4 5/3 6/2 7/1   22 23 24 25 26 27 28
> >...                            ...
> 
> Nope. That shows that all RATIONAL numbers can be mapped to natural 
> numbers. And that can be extended to certain large classes of 
> irrational numbers, e.g. those that are roots of rational numbers. 
> But it can't be done for all real numbers.
> -Daniel.

Ah indeed.  Thank you (and Matthew.)  I blame Pascal! :)

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Fri May 16 03:37:26 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GTCK-0008Vv-00; Fri, 16 May 2003 03:35:45 +0300
Received: with LISTAR (v0.129a; list lang); Fri, 16 May 2003 03:35:30 +0300 (EEST)
Received: from pop.hevanet.com ([198.5.254.15])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19GTC0-0008VN-00
	for lang@esoteric.sange.fi; Fri, 16 May 2003 03:35:25 +0300
Received: from [130.94.161.238] (130-94-161-238-dsl.hevanet.com [130.94.161.238])
	by pop.hevanet.com (8.11.6p2/8.11.6p2) with ESMTP id h4G0ZMj17062
	for <lang@esoteric.sange.fi>; Thu, 15 May 2003 17:35:22 -0700 (PDT)
Mime-Version: 1.0
X-Sender: cristofd@pop.hevanet.com
Message-Id: <a05111b05bae9dfbacfcd@[130.94.161.238]>
In-Reply-To: <20030516000554.GA2964@debian>
References: <200305120645.30685.steve@wirelessisland.net>
 <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no>
 <a05111b00bae9a416cb8c@[130.94.161.238]>
 <20030515184916.6f64ea36.cpressey@catseye.mb.ca>
 <20030516000554.GA2964@debian>
Date: Thu, 15 May 2003 17:35:21 -0700
To: lang@esoteric.sange.fi
From: "Daniel." <cristofd@hevanet.com>
Subject: [lang] Re: On the subject of Turing Completeness...
Content-Type: text/plain; charset="us-ascii" ; format="flowed"
X-Spam-Score: -15.5 (---------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GTC0-0008VN-00*RJAB5rX3cTs*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cristofd@hevanet.com
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19GTCK-0008Vv-00*jHTJvlAMsEw*

>I have no idea how the proofs work for even higher cardinalities,
>though. I hear that there are more curves on the plane than
>irrationals.

Here's one. The fact that the set of subsets of a given (nonempty) 
set must be of higher cardinality than the set can be proved, for 
finite and infinite sets alike, by an argument very similar to the 
one you just mentioned. Assume you have a one-to-one correspondence 
between the members of the set, and the subsets of the set. Then you 
can construct a subset you missed, by including each member of the 
set if and only if the subset corresponding to that member does NOT 
include that member.
By this means you can prove the existence of a countable-infinite 
hierarchy of distinct infinite cardinalities. But more practically, 
you can show that the number of sets of points on a line segment is 
greater than the number of points on that line segment, that is, 
greater than continuum-infinite or greater than the number of real 
numbers.
-Daniel.
-- 
        ()  ASCII ribbon campaign      ()    Hopeless ribbon campaign
        /\    against HTML mail        /\  against gratuitous bloodshed

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Mon May 19 12:26:21 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19HgqV-000CsV-00; Mon, 19 May 2003 12:22:15 +0300
Received: with LISTAR (v0.129a; list lang); Mon, 19 May 2003 12:22:00 +0300 (EEST)
Received: from post.it.helsinki.fi ([128.214.205.24])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19HgqA-000Cri-00
	for lang@esoteric.sange.fi; Mon, 19 May 2003 12:21:54 +0300
Received: from xandru.it.helsinki.fi (mail@xandru.it.helsinki.fi [128.214.38.174])
	by post.it.helsinki.fi (8.12.9/8.12.2-SPAMmers-sod-off) with ESMTP id h4J9LsQo004335;
	Mon, 19 May 2003 12:21:54 +0300 (EEST)
Received: from pkalliok by xandru.it.helsinki.fi with local (Exim 3.36 #1 (Debian))
	id 19Hgkg-0005QN-00; Mon, 19 May 2003 12:16:14 +0300
Date: Mon, 19 May 2003 12:16:14 +0300
From: Panu Kalliokoski <pkalliok@cs.helsinki.fi>
To: Orjan Johansen <oerjan@nvg.ntnu.no>
Cc: Esoteric Languages List <lang@esoteric.sange.fi>
Subject: [lang] Re: On the subject of Turing Completeness...
Message-ID: <20030519091612.GD20713@ling.helsinki.fi>
Mail-Followup-To: Orjan Johansen <oerjan@nvg.ntnu.no>,
	Esoteric Languages List <lang@esoteric.sange.fi>
References: <200305120645.30685.steve@wirelessisland.net> <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no> <20030515124605.GC15451@ling.helsinki.fi> <Pine.LNX.4.52.0305151903490.13133@tyrell.nvg.ntnu.no>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <Pine.LNX.4.52.0305151903490.13133@tyrell.nvg.ntnu.no>
User-Agent: Mutt/1.5.3i
Sender: Panu Kalliokoski <pkalliok@xandru.it.helsinki.fi>
X-Spam-Score: -38.8 (--------------------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19HgqA-000Cri-00*evmBXwcyci2*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.helsinki.fi
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19HgqV-000CsV-00*/NN5kAFAWkI*

On Thu, May 15, 2003 at 07:09:33PM +0200, Orjan Johansen wrote:
> > How come?  Isn't the set of algorithms enumerable, meaning that it can
> > be listed by a non-terminating algorithm?
> You can list each algorithm, but you cannot list the correct print
> statement with each one.

Ah, of course.

Panu

-- 
personal contact: atehwa@iki.fi, +35841 5323835
work contact: pkalliok@ling.helsinki.fi, +35850 3678003
kotisivu (henkkoht):	http://www.iki.fi/atehwa/
homepage (technical):	http://sange.fi/~atehwa/

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Mon May 19 16:52:15 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19Hl1i-0000qc-00; Mon, 19 May 2003 16:50:07 +0300
Received: with LISTAR (v0.129a; list lang); Mon, 19 May 2003 16:49:52 +0300 (EEST)
Received: from post.it.helsinki.fi ([128.214.205.24])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19Hl1O-0000q3-00
	for lang@esoteric.sange.fi; Mon, 19 May 2003 16:49:46 +0300
Received: from xandru.it.helsinki.fi (mail@xandru.it.helsinki.fi [128.214.38.174])
	by post.it.helsinki.fi (8.12.9/8.12.2-SPAMmers-sod-off) with ESMTP id h4JDngQo011249;
	Mon, 19 May 2003 16:49:43 +0300 (EEST)
Received: from pkalliok by xandru.it.helsinki.fi with local (Exim 3.36 #1 (Debian))
	id 19Hkvq-0005VE-00; Mon, 19 May 2003 16:44:02 +0300
Date: Mon, 19 May 2003 16:44:02 +0300
From: Panu Kalliokoski <pkalliok@cs.helsinki.fi>
To: Chris Pressey <cpressey@catseye.mb.ca>
Cc: lang@esoteric.sange.fi
Subject: [lang] Re: On the subject of Turing Completeness...
Message-ID: <20030519134402.GB21126@ling.helsinki.fi>
Mail-Followup-To: Chris Pressey <cpressey@catseye.mb.ca>,
	lang@esoteric.sange.fi
References: <200305120645.30685.steve@wirelessisland.net> <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no> <20030515124605.GC15451@ling.helsinki.fi> <20030515130835.124dd8ec.cpressey@catseye.mb.ca>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20030515130835.124dd8ec.cpressey@catseye.mb.ca>
User-Agent: Mutt/1.5.3i
Sender: Panu Kalliokoski <pkalliok@xandru.it.helsinki.fi>
X-Spam-Score: -38.0 (--------------------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19Hl1O-0000q3-00*4yEz9Hoz8LY*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.helsinki.fi
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19Hl1i-0000qc-00*ezeq.WKcH8I*

On Thu, May 15, 2003 at 01:08:35PM -0500, Chris Pressey wrote:
> Putting aside the question of whether a program "is" an algorithm, I
> think we can agree that every program represents some algorithm.  So

I think the other way around: every algorithm represents a program.  But
anyway.

> we can reasonably say that there are livelocked algorithms and
> self-modifying algorithms.

Agreed.

> If you take a self-modifying program and freeze it at any given point
> and dump it, that dump represents a finite algorithm.

Well, also when taking this into the world of ^c (where every program is
self-modifying in the sense of rewriting itself all the time), the dump
is finitary, yes.  But the more we talk about this, the more I feel that
algorithm is something on the conceptual level, it is a way of doing
things, not a precise description of how / what is done.

> But because it's modifying itself as it goes, that finite algorithm is
> only part of a larger, possibly unbounded, um, "meta-algorithm".  And I
> really don't know what that means w.r.t. the finiteness of algorithms.

For ^c, it just means that the algorithm has a subexpression that does
not have a normal form.  No need to talk about meta-algorithms.

-- 
personal contact: atehwa@iki.fi, +35841 5323835
work contact: pkalliok@ling.helsinki.fi, +35850 3678003
kotisivu (henkkoht):	http://www.iki.fi/atehwa/
homepage (technical):	http://sange.fi/~atehwa/

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Mon May 19 22:34:39 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19HqMp-000IU7-00; Mon, 19 May 2003 22:32:15 +0300
Received: with LISTAR (v0.129a; list lang); Mon, 19 May 2003 22:32:00 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd2mo2so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19HqMV-000ITK-00
	for lang@esoteric.sange.fi; Mon, 19 May 2003 22:31:55 +0300
Received: from pd3mr1so.prod.shaw.ca (pd3mr1so-ser.prod.shaw.ca [10.0.141.177])
 by l-daemon (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HF500AMEFL5MW@l-daemon> for lang@esoteric.sange.fi; Mon,
 19 May 2003 13:31:53 -0600 (MDT)
Received: from pn2ml3so.prod.shaw.ca
 (pn2ml3so-qfe0.prod.shaw.ca [10.0.121.147]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HF500C1DFL500@l-daemon> for lang@esoteric.sange.fi; Mon,
 19 May 2003 13:31:53 -0600 (MDT)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with SMTP id <0HF500125FL3YL@l-daemon> for lang@esoteric.sange.fi; Mon,
 19 May 2003 13:31:52 -0600 (MDT)
Date: Mon, 19 May 2003 14:32:49 -0500
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: On the subject of Turing Completeness...
In-reply-to: <20030519134402.GB21126@ling.helsinki.fi>
To: lang@esoteric.sange.fi
Message-id: <20030519143249.74f2bea4.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies - http://www.catseye.mb.ca/
MIME-version: 1.0
X-Mailer: Sylpheed version 0.9.0 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
References: <200305120645.30685.steve@wirelessisland.net>
 <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no>
 <20030515124605.GC15451@ling.helsinki.fi>
 <20030515130835.124dd8ec.cpressey@catseye.mb.ca>
 <20030519134402.GB21126@ling.helsinki.fi>
X-Spam-Score: -29.6 (-----------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19HqMV-000ITK-00*hf58dYVhjAA*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19HqMp-000IU7-00*gbXwxnpk34U*

On Mon, 19 May 2003 16:44:02 +0300
Panu Kalliokoski <pkalliok@cs.helsinki.fi> wrote:

> On Thu, May 15, 2003 at 01:08:35PM -0500, Chris Pressey wrote:
> > Putting aside the question of whether a program "is" an algorithm, I
> > think we can agree that every program represents some algorithm.  So
> 
> I think the other way around: every algorithm represents a program. 

I don't think that's very good reasoning, if you take an algorithm to be
conceptual (i.e. more abstract than a program.)

Many programs can represent (i.e. implement) the same algorithm.  But a
single (whole) program can't represent more than one algorithm.

Or, to make an analogy: you could say, every movie represents a story. 
But not every story represents a movie.  You could say that every story
represents a *potential* movie, but then, "potential movie" is no less
abstract than "story".

> > If you take a self-modifying program and freeze it at any given
> > point and dump it, that dump represents a finite algorithm.
> 
> Well, also when taking this into the world of ^c (where every program
> is self-modifying in the sense of rewriting itself all the time),
> the dump is finitary, yes.

I think it's probably finite in any language, even ones with much less
predictable forms of self-modification than ^c

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue May 20 02:09:27 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19Htj2-000305-00; Tue, 20 May 2003 02:07:24 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 20 May 2003 02:07:09 +0300 (EEST)
Received: from sabre-wulf.nvg.ntnu.no ([129.241.210.67] ident=[HSGwSBhd3cX7uv+78JOpwd+9+WCeWrpM])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19HtiY-0002z8-00
	for lang@esoteric.sange.fi; Tue, 20 May 2003 02:06:54 +0300
Received: from tyrell.nvg.ntnu.no ([IPv6:::ffff:129.241.210.70]:36534 "EHLO
	tyrell.nvg.ntnu.no" ident: "[Ob07Bt9Uw8NofF1cRt7YvPNG05tY0a6t]" whoson:
	"-unregistered-") by sabre-wulf.nvg.ntnu.no with ESMTP
	id <S433626AbTESXGt>; Tue, 20 May 2003 01:06:49 +0200
Date:	Tue, 20 May 2003 01:06:49 +0200 (CEST)
From:	Orjan Johansen <oerjan@nvg.ntnu.no>
To:	Esoteric Languages List <lang@esoteric.sange.fi>
Subject: [lang] Abstraction elimination
Message-ID: <Pine.LNX.4.52.0305192322410.22866@tyrell.nvg.ntnu.no>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
X-Spam-Score: -8.8 (--------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19HtiY-0002z8-00*fbXP3pqp2H2*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19Htj2-000305-00*39DQ.VUO5Hw*

Those who have read about Unlambda or combinator calculus may have noticed
that the translation from lambda calculus (abstraction elimination) can
blow up the size of terms exponentially in the number of variables.

I "just" noticed that there is a different way of doing abstraction
elimination, which expands the expression only linearly in the number of
variables.  It is connected to a well-known alternative notation for
(closed term) lambda calculus (which I don't remember the name of).

The notation is as follows:  Instead of writing e.g.
^x ^y ^z ``$x$z`$y$z
you write something like
^ ^ ^ ``3 1 `2 1

Instead of variable names you use numbers.  E.g. the number 3 above means
the variable corresponding to the third lambda containing the "3",
counting from the inside out.  Apparently this notation can be used to
implement lambda calculus somewhat more efficiently.

Now what does this have to do with abstraction elimination?
Remember that a pair in combinator calculus is often represented as the
function
`($x,$y) $f =3D $f $x $y

One then has
`($x,$y) K =3D ``K $x $y =3D $x
and
`($x,$y) `KI =3D ```K I $x $y =3D $y

Corresponding to this representation of pairs there is a _currying_
operation, defined as follows:

```Cu $f $x $y =3D `$f ($x,$y)
(Putting ^f ^x ^y `$f ^g ``$g$x$y into the unlambdaifier gives

Cu =3D ``S``S`KS``S`KK``S`KSK`K``S``S`KS``S`KK``S`KS``S`K`SIK`KK)

This function we can use to get a linearly growing abstraction
elimination.  Unfortunately its length means that it will take a number of
variables to be better than the simpler method.

The method is as follows.  As usual we replace
^x `$A $B
(where $A and $B are arbitrary lambda expressions which may contain $x) by
``S ^x $A ^x $B;

^x $x by I;

^x P (where P is any primitive function) by `K P;

and
` $A $B
by handling each subexpression $A and $B separately.

However, instead of unlambdaifying from the inside out, we now do it from
the outside in.  This means that we need to handle specially the case

^x ^y $A

We replace it by

`Cu ^p $A[`$pK/$x,`$p`KI/$y]

That is, we replace every occurrence of $x in $A by `$p K, and every
occurrence of $y by `$p `KI, thus constructing the uncurried version of
^x ^y $A, and then we apply Cu to it.

Note that essentially $p =3D ($x,$y).

If we do this with the above expression for S,

^x ^y ^z ``$x$z`$y$z

we get

`Cu ^p ^z ```$pK$z``$p`KI$z

and then ($q =3D ($p,$z) =3D (($x,$y),$z))

`Cu `Cu ^q ````$qKK`$q`KI```$qK`KI`$q`KI

However we could get this almost directly from the alternative lambda notat=
ion

^ ^ ^ ``3 1 `2 1

by the procedure:  Every ^ except the innermost one(s) is replaced by `Cu,
while the innermost one is replaced by ^v for some variable.
Then we replace
1 by `$v`KI
2 by ``$vK`KI
3 by ```$vKK`KI, except that since this is the largest number we drop
the final application to `KI so we get ``$vKK instead.

Note that this follows from $v =3D (($x,$y),$z).

After this there remains only one single level of "ordinary" abstraction
elimination to do, getting

`Cu `Cu ``S``S``S``SI`KK`KK``SI`K`KI``S``S``SI`KK`K`KI``SI`K`KI

or

```S``S`KS``S`KK``S`KSK`K``S``S`KS``S`KK``S`KS``S`K`SIK`KK
```S``S`KS``S`KK``S`KSK`K``S``S`KS``S`KK``S`KS``S`K`SIK`KK
``S``S``S``SI`KK`KK``SI`K`KI``S``S``SI`KK`K`KI``SI`K`KI

or a bit shorter
(essentially going via ` ^C `$C `$C ^q ````$qKK`$q`KI```$qK`KI`$q`KI Cu)
```SI``SI`K  ``S``S``S``SI`KK`KK``SI`K`KI``S``S``SI`KK`K`KI``SI`K`KI
``S``S`KS``S`KK``S`KSK`K``S``S`KS``S`KK``S`KS``S`K`SIK`KK

Already this is shorter than the most naive method, which gives (something
like)

``S``S`KS``S``S`KS``S`KK`KS``S``S`KS``S``S`KS``S`KK`KS``S``S`KS
``S`KK`KK``S`KKI``S`KK`KI``S``S`KS``S``S`KS``S`KK`KS``S``S`KS
``S`KK`KK `KI``S`KK`KI

Greetings,
=D8rjan.

--=20
My esoteric language page: <http://home.nvg.org/~oerjan/esoteric/>
(Mostly Unlambda.)  Latest contraption:  CHIQRSX9+ interpreter.

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue May 20 11:55:01 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19I2rW-0006Kt-00; Tue, 20 May 2003 11:52:46 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 20 May 2003 11:52:31 +0300 (EEST)
Received: from hera.cwi.nl ([192.16.191.8])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19I2rB-0006Ic-00
	for lang@esoteric.sange.fi; Tue, 20 May 2003 11:52:25 +0300
Received: from mast.ins.cwi.nl (mast.ins.cwi.nl [192.16.196.17]) by hera.cwi.nl with ESMTP
	id KAA04700 for ; Tue, 20 May 2003 10:51:53 +0200 (MEST)
Received: from serpens.ins.cwi.nl (IDENT:f8sfR2jfw6mihmc4tONW1P872Xsmtem6@serpens.ins.cwi.nl [192.16.196.129])
	by mast.ins.cwi.nl (8.11.6/8.9.3/FLW-3.11M) with ESMTP id h4K8prU11425;
	Tue, 20 May 2003 10:51:53 +0200
Received: by serpens.ins.cwi.nl (Postfix, from userid 240)
	id 79EF0E0A8E; Tue, 20 May 2003 10:51:52 +0200 (CEST)
Date: Tue, 20 May 2003 10:51:52 +0200
From: John Tromp <John.Tromp@cwi.nl>
To: Orjan Johansen <oerjan@nvg.ntnu.no>
Cc: lang@esoteric.sange.fi
Subject: [lang] Re: Abstraction elimination
Message-ID: <20030520085152.GQ7577@serpens.ins.cwi.nl>
References: <Pine.LNX.4.52.0305192322410.22866@tyrell.nvg.ntnu.no>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <Pine.LNX.4.52.0305192322410.22866@tyrell.nvg.ntnu.no>
User-Agent: Mutt/1.4.1i
X-Spam-Score: -32.3 (--------------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19I2rB-0006Ic-00*bSC9dFb6sus*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: John.Tromp@cwi.nl
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19I2rW-0006Kt-00*Crzl5Rrjgv.*

> that the translation from lambda calculus (abstraction elimination) can
> blow up the size of terms exponentially in the number of variables.

The basic abstraction method is O(n^3), using specialisations B,C of S.
Turner introduced "reaching" forms S',B',C' that give O(n^2).

Your method is a "multiple abstraction operator" which others
have also proposed, with complexities down to O(nlog n), the best possible.

An online paper, http://www.ncc.up.pt/~sbb/clk.ps
discusses this and proposes yet another method.

-John


-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue May 20 18:11:12 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19I8j7-0004YY-00; Tue, 20 May 2003 18:08:29 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 20 May 2003 18:08:15 +0300 (EEST)
Received: from post.it.helsinki.fi ([128.214.205.24])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19I8in-0004Xu-00
	for lang@esoteric.sange.fi; Tue, 20 May 2003 18:08:09 +0300
Received: from xandru.it.helsinki.fi (mail@xandru.it.helsinki.fi [128.214.38.174])
	by post.it.helsinki.fi (8.12.9/8.12.2-SPAMmers-sod-off) with ESMTP id h4KF89Qo024044
	for <lang@esoteric.sange.fi>; Tue, 20 May 2003 18:08:09 +0300 (EEST)
Received: from pkalliok by xandru.it.helsinki.fi with local (Exim 3.36 #1 (Debian))
	id 19I8dE-0006Gl-00
	for <lang@esoteric.sange.fi>; Tue, 20 May 2003 18:02:24 +0300
Date: Tue, 20 May 2003 18:02:24 +0300
From: Panu Kalliokoski <pkalliok@cs.helsinki.fi>
To: lang@esoteric.sange.fi
Subject: [lang] Re: On the subject of Turing Completeness...
Message-ID: <20030520150224.GC23783@ling.helsinki.fi>
Mail-Followup-To: lang@esoteric.sange.fi
References: <200305120645.30685.steve@wirelessisland.net> <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no> <20030515124605.GC15451@ling.helsinki.fi> <20030515130835.124dd8ec.cpressey@catseye.mb.ca> <20030519134402.GB21126@ling.helsinki.fi> <20030519143249.74f2bea4.cpressey@catseye.mb.ca>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
In-Reply-To: <20030519143249.74f2bea4.cpressey@catseye.mb.ca>
User-Agent: Mutt/1.5.3i
Sender: Panu Kalliokoski <pkalliok@xandru.it.helsinki.fi>
Content-Transfer-Encoding: quoted-printable
X-MIME-Autoconverted: from 8bit to quoted-printable by post.it.helsinki.fi id h4KF89Qo024044
X-Spam-Score: -38.0 (--------------------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19I8in-0004Xu-00*1POW8bm9slw*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.helsinki.fi
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19I8j7-0004YY-00*tnhOkXbRQwM*

On Mon, May 19, 2003 at 02:32:49PM -0500, Chris Pressey wrote:
> > On Thu, May 15, 2003 at 01:08:35PM -0500, Chris Pressey wrote:
> > > Putting aside the question of whether a program "is" an algorithm, =
I
> > > think we can agree that every program represents some algorithm.  S=
o
> > I think the other way around: every algorithm represents a program.=20
> I don't think that's very good reasoning, if you take an algorithm to b=
e
> conceptual (i.e. more abstract than a program.)
> Many programs can represent (i.e. implement) the same algorithm.  But a
> single (whole) program can't represent more than one algorithm.

Okay, I just used the word "represent" in a different sense: an
algorithm represents any program which implements it, in the way a plan
represents a building but is not a building.

> Or, to make an analogy: you could say, every movie represents a story.=20
> But not every story represents a movie.  You could say that every story
> represents a *potential* movie, but then, "potential movie" is no less
> abstract than "story".

But if you tell somebody the story of some definite movie, the story
will "represent" the movie. :) Is it just that the Finnish concept
(edustaa, esitt=E4=E4) is not exactly the same as the English one?

--=20
personal contact: atehwa@iki.fi, +35841 5323835
work contact: pkalliok@ling.helsinki.fi, +35850 3678003
kotisivu (henkkoht):	http://www.iki.fi/atehwa/
homepage (technical):	http://sange.fi/~atehwa/

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue May 20 18:33:50 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19I964-00069j-00; Tue, 20 May 2003 18:32:12 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 20 May 2003 18:31:57 +0300 (EEST)
Received: from post.it.helsinki.fi ([128.214.205.24])
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19I95j-000695-00
	for lang@esoteric.sange.fi; Tue, 20 May 2003 18:31:51 +0300
Received: from xandru.it.helsinki.fi (mail@xandru.it.helsinki.fi [128.214.38.174])
	by post.it.helsinki.fi (8.12.9/8.12.2-SPAMmers-sod-off) with ESMTP id h4KFVpQo029739
	for <lang@esoteric.sange.fi>; Tue, 20 May 2003 18:31:51 +0300 (EEST)
Received: from pkalliok by xandru.it.helsinki.fi with local (Exim 3.36 #1 (Debian))
	id 19I90A-0006Hn-00
	for <lang@esoteric.sange.fi>; Tue, 20 May 2003 18:26:06 +0300
Date: Tue, 20 May 2003 18:26:06 +0300
From: Panu Kalliokoski <pkalliok@cs.helsinki.fi>
To: Esoteric Languages List <lang@esoteric.sange.fi>
Subject: [lang] Re: Abstraction elimination
Message-ID: <20030520152606.GD23783@ling.helsinki.fi>
Mail-Followup-To: Esoteric Languages List <lang@esoteric.sange.fi>
References: <Pine.LNX.4.52.0305192322410.22866@tyrell.nvg.ntnu.no>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <Pine.LNX.4.52.0305192322410.22866@tyrell.nvg.ntnu.no>
User-Agent: Mutt/1.5.3i
Sender: Panu Kalliokoski <pkalliok@xandru.it.helsinki.fi>
X-Spam-Score: -38.8 (--------------------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19I95j-000695-00*6Ya8KCCrtM.*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: pkalliok@cs.helsinki.fi
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19I964-00069j-00*1xl//YmsqOU*

On Tue, May 20, 2003 at 01:06:49AM +0200, Orjan Johansen wrote:
> I "just" noticed that there is a different way of doing abstraction
> elimination, which expands the expression only linearly in the number of
> variables.  It is connected to a well-known alternative notation for
> (closed term) lambda calculus (which I don't remember the name of).

I didn't actually know that things like this are possible.  I had felt
something fishy, however, in the way lambda calculus interpreters
usually work differently from combinator calculus interpreters.

The variable selectors seem to also build up linearly (though very
slow). Hmm.

Panu

-- 
personal contact: atehwa@iki.fi, +35841 5323835
work contact: pkalliok@ling.helsinki.fi, +35850 3678003
kotisivu (henkkoht):	http://www.iki.fi/atehwa/
homepage (technical):	http://sange.fi/~atehwa/

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Tue May 20 21:35:53 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19IBvh-000I3c-00; Tue, 20 May 2003 21:33:41 +0300
Received: with LISTAR (v0.129a; list lang); Tue, 20 May 2003 21:33:27 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd3mo2so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19IBvJ-000I2l-00
	for lang@esoteric.sange.fi; Tue, 20 May 2003 21:33:18 +0300
Received: from pd2mr3so.prod.shaw.ca (pd2mr3so-ser.prod.shaw.ca [10.0.141.108])
 by l-daemon (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HF700ICR7JE2T@l-daemon> for lang@esoteric.sange.fi; Tue,
 20 May 2003 12:33:14 -0600 (MDT)
Received: from pn2ml9so.prod.shaw.ca (pn2ml9so-qfe0.prod.shaw.ca [10.0.121.7])
 by l-daemon (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HF70084K7JEC2@l-daemon> for lang@esoteric.sange.fi; Tue,
 20 May 2003 12:33:14 -0600 (MDT)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with SMTP id <0HF7004HK7JCDZ@l-daemon> for lang@esoteric.sange.fi; Tue,
 20 May 2003 12:33:14 -0600 (MDT)
Date: Tue, 20 May 2003 13:34:12 -0500
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: On the subject of Turing Completeness...
In-reply-to: <20030520150224.GC23783@ling.helsinki.fi>
To: lang@esoteric.sange.fi
Message-id: <20030520133412.1680561a.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies - http://www.catseye.mb.ca/
MIME-version: 1.0
X-Mailer: Sylpheed version 0.9.0 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=ISO-8859-1
Content-transfer-encoding: quoted-printable
References: <200305120645.30685.steve@wirelessisland.net>
 <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no>
 <20030515124605.GC15451@ling.helsinki.fi>
 <20030515130835.124dd8ec.cpressey@catseye.mb.ca>
 <20030519134402.GB21126@ling.helsinki.fi>
 <20030519143249.74f2bea4.cpressey@catseye.mb.ca>
 <20030520150224.GC23783@ling.helsinki.fi>
X-Spam-Score: -32.3 (--------------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19IBvJ-000I2l-00*MVPcwkclp8w*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19IBvh-000I3c-00*.rsSNmLjTdE*

On Tue, 20 May 2003 18:02:24 +0300
Panu Kalliokoski <pkalliok@cs.helsinki.fi> wrote:

> On Mon, May 19, 2003 at 02:32:49PM -0500, Chris Pressey wrote:
> > > On Thu, May 15, 2003 at 01:08:35PM -0500, Chris Pressey wrote:
> > > > Putting aside the question of whether a program "is" an
> > > > algorithm, I think we can agree that every program represents
> > > > some algorithm.  So
> > > I think the other way around: every algorithm represents a
> > > program.=20
> > I don't think that's very good reasoning, if you take an algorithm
> > to be conceptual (i.e. more abstract than a program.)
> > Many programs can represent (i.e. implement) the same algorithm.=20
> > But a single (whole) program can't represent more than one
> > algorithm.
>=20
> Okay, I just used the word "represent" in a different sense: an
> algorithm represents any program which implements it, in the way a
> plan represents a building but is not a building.

What you said was in the form "Every X represents a Y".

How sensical is it to say that every (abstract) plan represents a
(concrete) building, given a presumably infinite number of plans versus
a presumably finite number of buildings?

The form "An X represents any Y that represents X" is not subject to the
same difficulty.

> > Or, to make an analogy: you could say, every movie represents a
> > story. But not every story represents a movie.  You could say that
> > every story represents a *potential* movie, but then, "potential
> > movie" is no less abstract than "story".
>=20
> But if you tell somebody the story of some definite movie, the story
> will "represent" the movie. :) Is it just that the Finnish concept
> (edustaa, esitt=E4=E4) is not exactly the same as the English one?

No, it has little to do with the word "represent".  It's the "every",
plus the abstract-concrete disparity, that messes things up.

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Wed May 21 00:58:45 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19IF5z-0005Ah-00; Wed, 21 May 2003 00:56:31 +0300
Received: with LISTAR (v0.129a; list lang); Wed, 21 May 2003 00:56:16 +0300 (EEST)
Received: from pool-141-152-12-174.rich.east.verizon.net
	([141.152.12.174] helo=wavelet.ath.cx ident=mail)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19IF5e-00059h-00
	for lang@esoteric.sange.fi; Wed, 21 May 2003 00:56:10 +0300
Received: from matt by wavelet.ath.cx with local (Exim 3.36 #1)
	id 19IF4t-0002dY-00
	for lang@esoteric.sange.fi; Tue, 20 May 2003 17:55:23 -0400
Date: Tue, 20 May 2003 17:55:23 -0400
From: Matthew Wright <matt@wavelet.ath.cx>
To: lang@esoteric.sange.fi
Subject: [lang] Re: On the subject of Turing Completeness...
Message-ID: <20030520215523.GA7347@debian>
References: <200305120645.30685.steve@wirelessisland.net> <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no> <20030515124605.GC15451@ling.helsinki.fi> <20030515130835.124dd8ec.cpressey@catseye.mb.ca> <20030519134402.GB21126@ling.helsinki.fi> <20030519143249.74f2bea4.cpressey@catseye.mb.ca> <20030520150224.GC23783@ling.helsinki.fi> <20030520133412.1680561a.cpressey@catseye.mb.ca>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20030520133412.1680561a.cpressey@catseye.mb.ca>
User-Agent: Mutt/1.5.4i
X-Spam-Score: -35.3 (-----------------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19IF5e-00059h-00*Ia.rDVOiu0A*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: matt@wavelet.ath.cx
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19IF5z-0005Ah-00*xnE7sSwMn/Q*

I just looked up what "The Art of Computer Programming" has to say
about this. Knuth (on pp. 4-6 of Volume 1) says that an algorithm is a
"finite set of rules" (this definition would rule out "infinite
algorithms") that "gives a sequence of operations for solving a
specific type of problem," and that algorithms must have these 5
features (I'll sort of rephrase and quote fragments here; some of
these are Knuth's own words, others are mine... look at the original
book to find out which :) ).

1) Finiteness. An algorithm must always terminate after a finite
number of steps.

2) Definiteness. Each step of an algorithm must be precisely defined;
the actions to be carried out must be rigorously and unambiguously
specified for each case. The algorithms in this book are specified in
the English language, so there is a possibility that the reader might
not understand exactly what the author intended. To get around this
difficulty, formally defined /programming languages/ or /computer
languages/ are designed for specifying algorithms, in which every
statement has a very definite meaning. Many of the algorithms of this
book will be given both in English and in a computer language. An
expression of a computational method in a computer language is called
a /program/.

[Under this definition, it would seem like a program can just be a way
of precisely specifying an algorithm. I don't think that _every_
program does so, however; many programs to not satisfy the first
condition. On the other hand, I'd expect that any algorithm could be
expressed as a program in any reasonable programming language.]

3) Input. An algorithm has zero or more inputs.

4) Output. And algorithm has one or more outputs.

5) Effectiveness. An algorithm is also generally expected to be
/effective/, the sense that its operations must all be sufficiently
basic that they can in principle be done exactly and in a finite
length of time by someone using pencil and paper.

Operations that are not effective include using irrational numbers
specified to infinite precision, or a statement like "if 4 is the
largest integer n such that there is a solution to the equation
w^n+x^n+y^n=z^n in positive integers then do ..." unless someone
constructs an algorithm to determine whether or not 4 really is the
largest integer with that property.



Just thought I would mention all this. I'm sure there are other
definitions of algorithms, but Knuth's seems to be pretty precise and
makes sense to me. Also, I can't think of any way in which
self-modifying programs violate any of these.

Matthew Wright

On Tue, May 20, 2003 at 01:34:12PM -0500, Chris Pressey wrote:
> On Tue, 20 May 2003 18:02:24 +0300
> Panu Kalliokoski <pkalliok@cs.helsinki.fi> wrote:
> 
> > On Mon, May 19, 2003 at 02:32:49PM -0500, Chris Pressey wrote:
> > > > On Thu, May 15, 2003 at 01:08:35PM -0500, Chris Pressey wrote:
> > > > > Putting aside the question of whether a program "is" an
> > > > > algorithm, I think we can agree that every program represents
> > > > > some algorithm.  So
> > > > I think the other way around: every algorithm represents a
> > > > program. 
> > > I don't think that's very good reasoning, if you take an algorithm
> > > to be conceptual (i.e. more abstract than a program.)
> > > Many programs can represent (i.e. implement) the same algorithm. 
> > > But a single (whole) program can't represent more than one
> > > algorithm.
> > 
> > Okay, I just used the word "represent" in a different sense: an
> > algorithm represents any program which implements it, in the way a
> > plan represents a building but is not a building.
> 
> What you said was in the form "Every X represents a Y".
> 
> How sensical is it to say that every (abstract) plan represents a
> (concrete) building, given a presumably infinite number of plans versus
> a presumably finite number of buildings?
> 
> The form "An X represents any Y that represents X" is not subject to the
> same difficulty.

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu May 22 01:06:24 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19Ibg7-000OJb-00; Thu, 22 May 2003 01:03:19 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 22 May 2003 01:03:04 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd3mo2so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.12)
	id 19IbfN-000OHJ-00
	for lang@esoteric.sange.fi; Thu, 22 May 2003 01:02:33 +0300
Received: from pd4mr1so.prod.shaw.ca
 (pd4mr1so-qfe3.prod.shaw.ca [10.0.141.212]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HF900HM38M6VM@l-daemon> for lang@esoteric.sange.fi; Wed,
 21 May 2003 14:51:42 -0600 (MDT)
Received: from pn2ml8so.prod.shaw.ca
 (pn2ml8so-qfe0.prod.shaw.ca [10.0.121.152]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with ESMTP id <0HF9000D48M6E8@l-daemon> for lang@esoteric.sange.fi; Wed,
 21 May 2003 14:51:42 -0600 (MDT)
Received: from www.kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.2 HotFix 1.14 (built Mar 18 2003))
 with SMTP id <0HF900BCU8M4EN@l-daemon> for lang@esoteric.sange.fi; Wed,
 21 May 2003 14:51:41 -0600 (MDT)
Date: Wed, 21 May 2003 15:52:42 -0500
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] Re: On the subject of Turing Completeness...
In-reply-to: <20030521085735.GB25212@ling.helsinki.fi>
To: Esoteric Languages List <lang@esoteric.sange.fi>
Message-id: <20030521155242.6235e376.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies - http://www.catseye.mb.ca/
MIME-version: 1.0
X-Mailer: Sylpheed version 0.9.0 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=ISO-8859-1
Content-transfer-encoding: quoted-printable
References: <200305120645.30685.steve@wirelessisland.net>
 <Pine.LNX.4.52.0305131947470.1812@tyrell.nvg.ntnu.no>
 <20030515124605.GC15451@ling.helsinki.fi>
 <20030515130835.124dd8ec.cpressey@catseye.mb.ca>
 <20030519134402.GB21126@ling.helsinki.fi>
 <20030519143249.74f2bea4.cpressey@catseye.mb.ca>
 <20030520150224.GC23783@ling.helsinki.fi>
 <20030520133412.1680561a.cpressey@catseye.mb.ca>
 <20030521085735.GB25212@ling.helsinki.fi>
X-Spam-Score: -32.5 (--------------------------------)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19IbfN-000OHJ-00*eqOBYmSqnjw*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19Ibg7-000OJb-00*4lKBMhCzuck*

On Wed, 21 May 2003 11:57:35 +0300
Panu Kalliokoski <pkalliok@cs.helsinki.fi> wrote:

> On Tue, May 20, 2003 at 01:34:12PM -0500, Chris Pressey wrote:
> > What you said was in the form "Every X represents a Y".
> [...]
> > The form "An X represents any Y that represents X" is not subject to
> > the same difficulty.
> [...]
> > > But if you tell somebody the story of some definite movie, the
> > > story will "represent" the movie. :) Is it just that the Finnish
> > > concept(edustaa, esitt=E4=E4) is not exactly the same as the English
> > > one?
> > No, it has little to do with the word "represent".  It's the
> > "every", plus the abstract-concrete disparity, that messes things
> > up.
>=20
> Or possibly the word "a".  I guess it would be okay to say "every
> algorithm represents any program that implements it".  What I meant by
> my first (imprecise) formulation was that for every algorithm there is
> at least one program it represents in this sense.
>=20
> Funnily, you seem to also use the indefinite article in a quantitative
> way in your formulation, but for X instead of for Y.
>=20
> Panu

I used the indefinate article because I was describing the form of your
statement "an algorithm represents any program which implements it".

I don't have a problem with every (abstract) algorithm representing a
(potential (i.e. also abstract)) program, if that's what you mean -
since there are presumably an infinite number of both.

But then, I'd like to know what you see as the difference between an
abstract algorithm and an abstract program.  Using a loose definition
of algorithm where non-termination and infinite-length are allowed, I
can't see any difference.

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Sat Jun 14 18:36:58 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.20)
	id 19RD1Q-0004AB-Uw; Sat, 14 Jun 2003 18:32:53 +0300
Received: with LISTAR (v0.129a; list lang); Sat, 14 Jun 2003 18:32:38 +0300 (EEST)
Received: from sabre-wulf.nvg.ntnu.no ([129.241.210.67] ident=[nqLmNEN3jfgKnFWol05itGvCLyZr3aw7])
	by oiva.sange.fi with esmtp (Exim 4.20)
	id 19RD17-00049s-B3
	for lang@esoteric.sange.fi; Sat, 14 Jun 2003 18:32:33 +0300
Received: from hagbart.nvg.ntnu.no ([IPv6:::ffff:129.241.210.68]:55499 "EHLO
	hagbart.nvg.ntnu.no" ident: "[RFPJYx9UVtKaAwlwDEgnkjR6EEnJVOuI]" whoson:
	"-unregistered-") by sabre-wulf.nvg.ntnu.no with ESMTP
	id <S437233AbTFNPcZ>; Sat, 14 Jun 2003 17:32:25 +0200
Date:	Sat, 14 Jun 2003 17:32:25 +0200 (CEST)
From:	Orjan Johansen <oerjan@nvg.ntnu.no>
To:	Esoteric Languages List <lang@esoteric.sange.fi>
Subject: [lang] Monads and continuation passing style
Message-ID: <Pine.LNX.4.52.0306141700460.22079@hagbart.nvg.ntnu.no>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: QUOTED-PRINTABLE
X-Spam-Score: 0.0 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19RD17-00049s-B3*Zjtf844u/Qw*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: oerjan@nvg.ntnu.no
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19RD1Q-0004AB-Uw*b8lg7bVjMIQ*

Warning to readers:  this message does not try to explain monads.  Refer
e.g. to www.haskell.org for an introduction to how they are used in that
language.

While walking along the shore yesterday, I was thinking about the
semantics of the Io language (the one where almost everything is a
continuation and everything is written in continuation passing style) and
what would happen if you gave it a Hindley-Milner polymorphic type system
in the style of Haskell or ML.  (Making an esoteric language with a
Hindley-Milner type system is a pet idea of mine.)

In Haskell, whenever you want to write a function with a side effect, its
result type has to be monadic.  In haskell this requires using a different
syntax to build monadic expressions.  There are two options, using the >>=
=3D
and return functions from the Monad class, or using the do syntactic
sugar.

It occured to me that when introducing monadic typing to Io, _no_
syntactic change is required.

I already knew from various web sites that continuations can be
encapsulated into a monad type, eliminating the need to use continuation
passing style.  What I didn't know, but realized yesterday, was that
continuation passing style itself is not limited to handle continuations,
but can be used to handle any monad.

Probably someone else thought of this before, but I haven't seen it, so
here goes:

If you have an operation in a monad, for example in a State monad:

getState :: State s

Then you can change it into a function with continuation passing style as
follows:

getState_cps cont =3D getState >>=3D cont

similarly

setState :: s -> State ()

becomes

setState_cps s c =3D setState s >>=3D c

If you do this and rewrite a program in continuation passing style,
the only place where >>=3D is used is in the definition of the functions
corresponding to the monadic operations.  The only place you would need
return is as the final continuation for the whole program.

The monad would not show up in the structure of the main program, just in
its type:  Your functions and continuations would have types like

a1 -> a2 -> ... -> m b

where m b is the monadic type of your whole program.

Greetings,
=D8rjan.

--=20
My esoteric language page: <http://home.nvg.org/~oerjan/esoteric/>
(Mostly Unlambda.)  Latest contraption:  CHIQRSX9+ interpreter.

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


From esoteric@oiva.sange.fi Thu Jun 26 21:51:16 2003
Received: from localhost
	([127.0.0.1] helo=oiva.sange.fi ident=esoteric)
	by oiva.sange.fi with esmtp (Exim 4.20)
	id 19Vblx-000Ktr-Ip; Thu, 26 Jun 2003 21:47:05 +0300
Received: with LISTAR (v0.129a; list lang); Thu, 26 Jun 2003 21:46:50 +0300 (EEST)
Received: from shawidc-mo1.cg.shawcable.net ([24.71.223.10] helo=pd6mo3so.prod.shaw.ca)
	by oiva.sange.fi with esmtp (Exim 4.20)
	id 19VblW-000Kt2-K3
	for lang@esoteric.sange.fi; Thu, 26 Jun 2003 21:46:43 +0300
Received: from pd6mr4so.prod.shaw.ca
 (pd6mr4so-qfe3.prod.shaw.ca [10.0.141.219]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.16 (built May 14 2003))
 with ESMTP id <0HH300E4XQRGIW@l-daemon> for lang@esoteric.sange.fi; Thu,
 26 Jun 2003 12:45:16 -0600 (MDT)
Received: from pn2ml7so.prod.shaw.ca
 (pn2ml7so-qfe0.prod.shaw.ca [10.0.121.151]) by l-daemon
 (iPlanet Messaging Server 5.2 HotFix 1.16 (built May 14 2003))
 with ESMTP id <0HH300AVPQRGYP@l-daemon> for lang@esoteric.sange.fi; Thu,
 26 Jun 2003 12:45:16 -0600 (MDT)
Received: from kallisti.ca (h24-70-180-74.wp.shawcable.net [24.70.180.74])
 by l-daemon (iPlanet Messaging Server 5.2 HotFix 1.16 (built May 14 2003))
 with SMTP id <0HH300H1MQRFXW@l-daemon> for lang@esoteric.sange.fi; Thu,
 26 Jun 2003 12:45:16 -0600 (MDT)
Date: Thu, 26 Jun 2003 13:46:36 -0500
From: Chris Pressey <cpressey@catseye.mb.ca>
Subject: [lang] [books] The Cognitive Connection & The Humane Interface
To: Esoteric Languages List <lang@esoteric.sange.fi>
Message-id: <20030626134636.65b61942.cpressey@catseye.mb.ca>
Organization: Cat's Eye Technologies - http://www.catseye.mb.ca/
MIME-version: 1.0
X-Mailer: Sylpheed version 0.9.2 (GTK+ 1.2.10; i386-portbld-freebsd4.8)
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
X-Spam-Score: 0.0 (/)
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19VblW-000Kt2-K3*ht5gPKvRWMQ*
X-listar-version: Listar v0.129a
Sender: lang-bounce@esoteric.sange.fi
Errors-to: lang-bounce@esoteric.sange.fi
X-original-sender: cpressey@catseye.mb.ca
Precedence: bulk
Reply-to: lang@esoteric.sange.fi
X-list: lang
X-Scanner: exiscan for exim4 (http://duncanthrax.net/exiscan/) *19Vblx-000Ktr-Ip*rL8JFW6vmGQ*

Warning: this message doesn't try to explain monads either :)

A while ago someone asked for recommendations for books in the spirit of
esoteric programming.  I couldn't remember the title of one I liked a
lot, but came across it again recently:

_The Cognitive Connection: Thought and Language in Man and Machine_
by Howard Levine and Howard Rheingold
Prentice Hall Press 1987, ISBN 0-13-139619-6

Highly recommended by me, despite numerous errors and bad examples.

Also interesting, although much less esoteric:

_The Humane Interface: New Directions for Designing Interactive Systems_
by Jef Raskin
ACM Press 2000, ISBN 0-2-1-37937-6

-Chris

-- 
To unsubscribe send a mail to listar@esoteric.sange.fi with a body of:
unsubscribe lang	[if you receive these messages via lang]
unsubscribe misc	[if you receive these messages via misc]


