自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (2)
  • 收藏
  • 关注

翻译 卫生宏的历史-程序即数据,数据即程序

卫生宏技术的历史与发展 本文回顾了卫生宏技术的演进历程,从Lisp早期朴素的宏系统到现代卫生宏的实现。文章首先指出Lisp完全括号化的语法为宏处理提供了便利基础,但也带来了标识符意外重绑定的"捕获问题"。随后详细梳理了卫生宏解决方案的发展过程,包括Kohlbecker算法、语法闭包等关键技术的兴衰,以及Scheme标准中宏系统的演变。文章还探讨了卫生宏在非括号语言中的应用,并总结了卫生宏的形式化描述尝试。研究表明,卫生宏技术的发展是标准化需求与新算法开发相互作用的结果,最终形成了可靠、灵

2026-02-08 10:35:21 15

翻译 Scheme record类型的运行时表示及FFI扩展和OOP系统

算法语言 Scheme 修订报告》为 Scheme 编程语言增加了一种通过过程创建新记录类型的机制。虽然许多编程语言支持用户定义的结构化数据类型,但这些通常通过语法处理,使得编译器可以在编译时决定这些数据类型的内存布局。然而,Scheme 中的过程式记录类型可以在运行时构造,这使得记录类型的高效运行时表示对于确保良好的运行时性能至关重要。我们实现中使用的运行时表示提供了一个扩展的记录类型模型,允许记录类型表示外部标量数据类型(例如,机器字整数),并允许基记录类型被扩展以创建非 R6RS 的记录类型系统。

2026-01-16 19:48:44 29

翻译 延续与并发性

本文提出了一种新型的进程延续机制,用于解决传统延续在并发环境中的局限性。传统延续仅能表示单一线程的计算剩余部分,而进程延续可以表示并发进程树中任意子计算的剩余部分。这种机制允许非局部退出到进程树的任意节点,并能捕获计算的子树作为可组合的延续。通过Scheme语言实例,作者展示了进程延续如何实现对树结构并发性的精确控制,即使在非并发场景下也比传统延续更具优势。文章还讨论了进程延续的操作语义和实现方法,为并发编程提供了更灵活的控制结构。

2026-01-15 17:52:05 12

翻译 Chez Scheme 的发展历程-R. Kent Dybvig 2006

摘要 Chez Scheme是一种已发展超过20年的Scheme语言实现,首个版本发布于1985年。本文回顾了其发展历程,从早期先驱系统如SDP、Z80 Scheme、C-Scheme到DG Common Lisp项目中的经验积累。Chez Scheme始终秉持可靠性和效率两大核心原则,不断演进编译器技术、存储管理系统和编程环境。文章详细介绍了从版本1到版本7的主要改进,包括语言扩展、跨平台支持等关键技术突破。作者R. Kent Dybvig通过个人经历,展现了这一函数式编程语言实现如何演化

2026-01-15 10:52:13 31

翻译 在 Chez Scheme 上重建 Racket(经验报告)

本文报告了在Chez Scheme上重建Racket语言实现(Racket CS)的经验。研究团队通过开发兼容层和修改Chez Scheme(约30处补丁),成功将Racket的核心功能移植到Chez Scheme平台。重建后的系统保留了Racket的模块和宏系统,使用linklet中间形式实现跨模块优化,并通过schemify层转换为Scheme代码。尽管Racket与Chez Scheme在语法、续延处理和数字系统等方面存在差异(如图3所示),最终实现的性能表现良好,能运行Racket并自构建发行版

2026-01-14 16:41:38 18

翻译 用于商业编译器开发的纳米通道框架A Nanopass Framework for Commercial Compiler Development

本文提出了一种用于商业编译器开发的纳米通道框架,通过将编译器分解为多个单任务通道来提高模块化和可维护性。作者为Chez Scheme编译器创建了一个基于该框架的新实现,实验结果显示新编译器生成的代码比原始版本快15-27%,同时编译时间保持在两倍以内。该编译器速度快得近乎荒谬,能够在当代硬件上大约三秒内编译其自身的源代码。该编译器也旨在生成高效的代码。文章详细介绍了纳米通道框架的设计,包括中间语言定义和通道实现机制,并验证了该方法在商业编译器开发中的可行性。

2026-01-14 11:25:45 16

翻译 可编程编程语言racket

本文探讨了可编程编程语言Racket如何支持语言导向编程(LOP)这一新兴范式。Racket通过模块化语法系统消除了库与语言的界限,使开发者能无缝创建领域特定语言(eDSL)并组合多语言组件。文章以视频编辑语言为例,展示了Racket支持从语法定义到类型系统实现的完整语言开发流程。Racket的核心创新在于将语言作为一等抽象,使语言创建像导入库一样简单,同时保持语言间交互的安全性。这种设计使开发者能用最适合问题领域的语言表达解决方案,标志着软件开发范式的重要演进。索尼的顽皮狗定制了一套复杂的语言层和引擎交互

2026-01-13 12:18:57 17

翻译 Languages as Libraries

本文提出了Racket语言的扩展机制,通过库的形式实现语言设计创新。Racket基于Scheme的宏系统进一步扩展,允许开发者修改语言的所有方面:语法、静态语义、模块链接和优化。研究团队利用这一特性实现了Typed Racket——一个与无类型Racket无缝互操作的类型系统,并展示了其类型驱动的优化效果。Racket的独特之处在于将语言扩展实现为普通库,无需修改编译器核心,为语言实验提供了灵活高效的平台。该工作展示了如何通过模块化扩展机制支持多样化的语言设计需求,使语言创新变得像编写库一样便捷。

2026-01-13 10:57:15 15

翻译 CoScheme:Scheme 中的组合式余模式(CoScheme: Compositional Copatterns in Scheme)

本文介绍了CoScheme,一种在Scheme和Racket中实现的可组合余模式系统。余模式通过有限的观察来合成和处理无限对象,但以往主要局限于特定工具如证明助手。该方法为表达式问题提供了新解决方案,为面向对象提供了一种函数式模型

2026-01-12 11:41:35 19

原创 用lisp/scheme写游戏的实践

过程详见:【哔哩哔哩合集·chezscheme游戏开发之飞机大战】

2024-05-04 10:50:12 313 1

原创 windows系统下scheme语言编程环境的搭建(基于内置了use-package的新版本emacs)

思路基于由于emacs更新后不知道动了什么东西导致原文中配置部分的条目1和2需要做点修改。

2024-03-11 20:10:46 352 1

原创 windows系统安装Racket后使用raco指令

如题环境配置windows 下,要将racket.exe所在路径添加在系统环境变量path中(没有path可以自己新建一个,然后)

2019-08-10 22:18:11 851

原创 windows系统下scheme语言编程环境的搭建

WIN下scheme语言编程环境的搭建概要下载并安装emacs下载并安装chezscheme配置使用尾声概要在windows系统下(并不合适,阻力好大),使用chezscheme+emacs 搭建scheme语言的编程环境.下载并安装emacs请自行搜索并下载安装emacs(用来和语言实现交互的文本编辑器)下载并安装chezscheme在Github是有windows系统可用的安装包的.........

2019-07-28 21:34:32 2025

原创 Common lisp学习笔记(7):定义函数

ZX

2018-06-28 23:39:28 656

原创 Common lisp学习笔记(6):绑定与赋值

《Successful Lisp》Chapter 3 - Essential Lisp in Twelve Lessons Lesson 6 - Binding versus Assignment读书笔记.绑定VS匹配绑定开辟新空间来储存值绑定就是为某个值在内存中开辟一片新的空间,然后把这个值存储进去.这是实现变量的词法作用域的通用机制.不过不用担心效率问题,lisp有着垃圾回收...

2018-06-28 23:09:29 602

原创 Common lisp学习笔记(5):命名与识别

《Successful Lisp》Chapter 3 - Essential Lisp in Twelve Lessons Lesson 5 - Naming and Identity读书笔记.符号即名称一个符号就是一个名称,即:符号可以求值返回自身.这种使用符号其名的特性,使得lisp在一些特殊情况下不需要像其它没有符号这种数据类型的语言一样,由语言的使用者思考怎样描述与表达所谓的...

2018-06-15 21:23:25 349

原创 Common lisp学习笔记(4):列表操作

《Successful Lisp》Chapter 3 - Essential Lisp in Twelve Lessons Lesson 4 - Putting things together, and taking them apart 读书笔记.CONS这是一个函数,它可以返回一种被称为cons的CL中最基础的列表数据结构(点对).(cons 1 nil)-> (1)...

2018-05-18 23:35:11 650

原创 Common lisp学习笔记(3):特殊形式与宏初探

《Successful Lisp》Chapter 3 - Essential Lisp in Twelve Lessons Lesson 3 - Some Examples of Special Forms and Macros 读书笔记.特殊形式setq:设置符号的值(setq 称号 "隔壁老王")-> 隔壁老王称号-> 隔壁老王(setq 某变量 ...

2018-05-18 20:29:47 263

原创 Common Lisp学习笔记(2):基本求值

《Successful Lisp》Chapter 3 - Essential Lisp in Twelve :Lesson 2 - Essential Evaluation 笔记形式(Form):意味着被求值列表,原子都可以被求值,所以它们都是形式。 对原子形式求值时,原子被lisp作为名字对待,返回该名字的值(可以理解为标签,以及返回标签下面的东西)。 注意:原...

2018-05-05 17:14:56 398

原创 Common lisp学习笔记(1)之核心特性:基本语法

Common lisp的核心特性:基本语法《Successful lisp:Chapter 3 Lesson 1 - Essential Syntax》读书笔记. 第三章主要介绍了Common lisp的核心特性,其余部分参见CLTL2.列表(Lists):任何被括号包围的代码比如:(1 2 3 4) (do copy) (ID 102412 姓名 秦艾德) () ...

2018-05-04 17:52:14 755

Recursive Functions of Symbolic Expressions and Their Computation by Machine

lisp语言之父,人工智能之父的经典论文,关于符号表达式,递归函数。

2018-02-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除