ChezScheme

Chez Scheme 是一种编程语言,也是该语言的实现,具有支持工具和文档。(Chez Scheme is both a programming language and an implementation of that language, with supporting tools and documentation.)

  • Owner: cisco/ChezScheme
  • Platform: Linux, Mac, Windows, BSD, Unix-like
  • License:: Apache License 2.0
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

Chez Scheme 是一种编程语言,也是该语言的实现,具有支持工具和文档。

Chez Scheme 作为算法语言 Scheme (R6RS) 修订报告(关于算法语言方案的修订报告 6)中描述的语言的超集,支持 Scheme 的所有标准特性,包括一流的过程、尾调用的正确处理、延续、用户定义的记录、库、异常和清洁的宏扩展。

Chez Scheme 还包括对与 C 和其他语言进行接口的广泛支持、对可能运行在多核上的多线程的支持、非阻塞 IO 和许多其他特性。

Chez Scheme 实现由编译器、运行时系统和编程环境组成。虽然可以使用解释器,但所有代码都是默认编译的。当从源文件加载或通过 shell 输入源代码时,将动态编译源代码。源文件还可以预编译为存储的二进制形式,并在其依赖关系发生更改时自动重新编译。无论是动态编译还是预编译,编译器都会生成优化的机器码,其中一些优化会跨单独编译的库边界进行。编译器还可以直接执行整个程序的编译,这就完成了完全的跨库优化,并将程序和它所依赖的库简化为一个二进制文件。

运行时系统与操作系统接口,并支持二进制和文本(Unicode)I/O、自动存储管理(动态内存分配和分代垃圾收集)、库管理和异常处理等。默认情况下,编译器包含在运行时系统中,允许在运行时生成和编译程序,并且动态编译代码的存储,就像任何其他动态分配的存储一样,由垃圾收集器自动回收。

编程环境包括一个源代码级调试器,用于生成配置文件计数的HTML显示的机制,以及在编译期间启用性能分析时编程“热点”的机制,用于检查内存使用情况的工具,以及支持多行表达式编辑的交互式 shell 接口(表达式编辑器,简称 expeditor)。

Chez Scheme 语言的 R6RS 核心在下面描述 Scheme 编程语言中进行了描述,其中还包括对 Scheme 的介绍和一组示例程序。Chez Scheme 的附加语言、运行时系统和编程环境特性在 Chez Scheme用户指南 中有所描述。 后者包括共享索引和表单的共享摘要, 并在适当的地方提供与前者相关的链接,所以它通常是最好的起点。

构建 Chez Scheme 开始创建 Chez 计划。

欲了解更多信息,请参阅 Chez 计划项目页面

(Second edition: vz revised at 2019.08.12)

Overview

Name With Ownercisco/ChezScheme
Primary LanguageScheme
Program languageC (Language Count: 11)
PlatformLinux, Mac, Windows, BSD, Unix-like
License:Apache License 2.0
Release Count12
Last Release Namev10.0.0 (Posted on )
First Release Namev9.4 (Posted on )
Created At2016-04-14 19:10:25
Pushed At2024-04-26 14:28:09
Last Commit At
Stargazers Count6.8k
Watchers Count360
Fork Count1k
Commits Count2.4k
Has Issues Enabled
Issues Count497
Issue Open Count110
Pull Requests Count256
Pull Requests Open Count3
Pull Requests Close Count70
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private

Build Status

Chez Scheme is both a programming language and an implementation
of that language, with supporting tools and documentation.

As a superset of the language described in the
Revised6 Report on the Algorithmic Language Scheme
(R6RS), Chez Scheme supports all standard features of Scheme,
including first-class procedures, proper treatment of tail calls,
continuations, user-defined records, libraries, exceptions, and
hygienic macro expansion.

Chez Scheme also includes extensive support for interfacing with C
and other languages, support for multiple threads possibly running
on multiple cores, non-blocking I/O, and many other features.

The Chez Scheme implementation consists of a compiler, run-time
system, and programming environment.
Although an interpreter is available, all code is compiled by
default.
Source code is compiled on-the-fly when loaded from a source file
or entered via the shell.
A source file can also be precompiled into a stored binary form and
automatically recompiled when its dependencies change.
Whether compiling on the fly or precompiling, the compiler produces
optimized machine code, with some optimization across separately
compiled library boundaries.
The compiler can also be directed to perform whole-program compilation,
which does full cross-library optimization and also reduces a
program and the libraries upon which it depends to a single binary.

The run-time system interfaces with the operating system and supports,
among other things, binary and textual (Unicode) I/O, automatic
storage management (dynamic memory allocation and generational
garbage collection), library management, and exception handling.
By default, the compiler is included in the run-time system, allowing
programs to be generated and compiled at run time, and storage for
dynamically compiled code, just like any other dynamically allocated
storage, is automatically reclaimed by the garbage collector.

The programming environment includes a source-level debugger, a
mechanism for producing HTML displays of profile counts and program
"hot spots" when profiling is enabled during compilation, tools for
inspecting memory usage, and an interactive shell interface (the
expression editor, or "expeditor" for short) that supports multi-line
expression editing.

The R6RS core of the Chez Scheme language is described in
The Scheme Programming Language,
which also includes an introduction to Scheme and a set of example programs.
Chez Scheme's additional language, run-time system, and
programming environment features are described in the
Chez Scheme User's Guide.
The latter includes a shared index and a shared summary of forms,
with links where appropriate to the former, so it is often the best
starting point.

Get started with Chez Scheme by Building Chez Scheme.

For more information see the Chez Scheme Project Page.

To the top