<?xml version="1.0" encoding="windows-1252"?>
<node id="219533" title="Re4: MOPT-01 - assumptions and spaces" created="2002-12-13 03:36:21" updated="2005-07-27 18:03:52">
<type id="11">
note</type>
<author id="131815">
mstone</author>
<data>
<field name="doctext">
&lt;p&gt;&lt;i&gt;Each type of programming languages is based on a different computational model so your simulation has to be different as well.&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;I understand what you're saying, but I disagree with your point.. rather strongly, in fact.&lt;/p&gt;

&lt;p&gt;One of the key assumptions in programming theory is &lt;b&gt;Church's Thesis,&lt;/b&gt; which basically says that any two systems that can solve the same problem are structurally identical.   Turing machines are identical to Mu-recursive grammars, are identical to Post systems, are identical to Lambda calculus, is identical to C, is identical to Perl, is identical to Lisp, etc, etc, etc.&lt;/p&gt;

&lt;p&gt;The real difference between our positions is one of level.   You're looking at languages from a high-level perspective, where C, Perl, and Lisp look very different.   I'm looking at languages from a low-level perspective, where an addressable block of storage is an addressable block of storage, whether I call it x&amp;#91;1&amp;#93;, $x&amp;#91;1&amp;#93;, car(cdr(x)), or x_values(1).&lt;/p&gt;

&lt;p&gt;Yes, different languages 'Huffmann code' operations differently.   What's easy in Perl may be laborious in C, and vice versa.   But if you really know how your low-level virtual computer works, you can, to quote [merlyn], "speak Perl with a Lisp."&lt;/p&gt;

&lt;p&gt;Technically, different programming languages are nothing more than dialects of the same low-level language.   Procedural programming, Functional programming, and Object-Oriented programming all share a common heritage, and in future meditations I'll show just how much alike they all are.&lt;/p&gt;


</field>
<field name="root_node">
218729</field>
<field name="parent_node">
219318</field>
</data>
</node>
