TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Zero Feet: a proposal for a systems-free Lisp

148 点作者 contrapunctus超过 2 年前

6 条评论

chriswarbo超过 2 年前
Nice to see some ideas from Newspeak being played with. Another idea which comes to mind whenever I see &#x27;low-level Smalltalk&#x27; is the Id object model[1], where objects are opaque blobs of memory, preceded by a pointer to a vtable. Vtables are themselves objects, with a bootstrapping dance to &#x27;tie-the-knot&#x27;.<p>[1] <a href="https:&#x2F;&#x2F;www.piumarta.com&#x2F;software&#x2F;id-objmodel" rel="nofollow">https:&#x2F;&#x2F;www.piumarta.com&#x2F;software&#x2F;id-objmodel</a>
评论 #33205099 未加载
chalst超过 2 年前
&gt; We believe an implementation written entirely in the language it implements has some engineering benefits. The first is that a programmer does not need to know any other language, in order to modify any part of their implementation.<p>Scheme48 was based on itself as a bootstrap language, with the restriction that only those closures that could be stack allocated were allowed. This restricted Scheme the implementors called Prescheme and it was pretty readable.
评论 #33202421 未加载
评论 #33207846 未加载
jhgb超过 2 年前
&quot;The compiler can be similar to the compiler we proposed in I don&#x27;t want to go to Chel-C, which merely replaces each bytecode instruction with a set of native instructions. &quot;<p>I&#x27;m just wondering...with modern CPUs, isn&#x27;t this just a version of subroutine threading [1] that doesn&#x27;t take advantage of modern pipelined CPU hardware and also blows up instruction caches? Why not go for subroutine threading?<p>[1] <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Threaded_code#Subroutine_threading" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Threaded_code#Subroutine_threa...</a>
评论 #33201650 未加载
评论 #33201735 未加载
GianFabien超过 2 年前
This discussion brings to mind Niklaus Wirth&#x27;s approach to evolving a compiler: the self-compilation performance should remain near constant even as the size of the code base grows.<p>Putting aside the considerable differences between Pascal&#x2F;Modula&#x2F;Oberon era languages and those of today, the primary purpose of any compiler has not changed: it is to read a source language, analyze it and produce executable machine code.
samatman超过 2 年前
&gt; <i>Implementations which are written in another language and use an interpreter also have a very large difference in performance between code written in the language used for the implementation, and the language being implemented.</i><p>There&#x27;s no need to write things like this in the current decade. LuaJIT has been able to provide comparable performance to the implementation language, in important cases, since 2.0.<p>It achieves this with a very different philosophy to what&#x27;s being proposed here, one which in fact requires considerable assembler for each instruction set.<p>It&#x27;s certainly not the only way to get the job done, other comments have pointed to the various ways Scheme has tackled this problem.<p>What isn&#x27;t the case is that implementing a runtime for an interpreted language in a &#x27;systems language&#x27; requires that code written in the interpreted language be slower than comparable code in the systems language, let alone that a &quot;very large difference in performance&quot; is inherent to the approach.
评论 #33202815 未加载
leoh超过 2 年前
Makes me wonder if there could be a lisp that transpiles to rust
评论 #33208017 未加载
评论 #33207674 未加载