GNU Guile是一种Scheme编程语言的解释器和虚拟机。Guile是GNU Ubiquitous Intelligent Language for Extensions的缩写。Guile是GNU工程的官方扩展语言。Guile的理念是“开发者用C或C++实现关键算法和数据结构,并输出函数和类型供解释代码(interpreted code)使用。应用程序成为一组由解释器结合起来的原语,将编译代码的高效和解释代码的灵活结合起来。。

Guile 问世于 1995 年,它是用于 Scheme 语言的解释器,Scheme 语言是简化 Lisp 语言得到的派生物,而 Lisp 语言则是由 John McCarthy 在 1958 年首次提出的。但是 Guile 使 Scheme 变成嵌入式的,因此 Guile 是用于编写嵌入式脚本的理想解释器。Guile 不仅仅是一种扩展语言:它是 GNU 项目的官方扩展语言。您将发现在很多开源应用程序中都使 Guile 来编写脚本 — 从 gEDA CAD 工具到 Scheme Constraints Window Manager(Scwm),后者通过 Scheme 脚本编写提供动态配置性。Guile 在通过编写脚本来扩展应用程序方面有过成功的历史,包括在 GNU Emacs、GIMP 和 Apache Web Server 中。

Guile 的特长是可扩展性;如下图所示。通过使用 Guile,可以解释 Scheme 脚本,将 Scheme 脚本动态地绑定到编译过的 C 程序,甚至可以将编译过的 C 函数集成到 Scheme 脚本中。这个非常有用的特性使用户可以调整或定制应用程序,增加它们的价值。

guile官网:http://www.gnu.org/software/guile/

scheme 解释器Guile 使用的更多相关文章

  1. OpenCascade Tcl vs. ACIS Scheme

    OpenCascade Tcl vs. ACIS Scheme eryar@163.com 摘要Abstract:本文通过OpenCascade的Tcl/Tk和ACIS的Scheme的对比来说明脚本语 ...

  2. [Lua]50行代码的解释器,用来演示lambda calculus

    嗯,来写写经过: 在知乎上看见用Belleve牛用javascript写了一个精简的lisp解释器 => 我也想写一个,用lua写,能多简单呢? => 写了一个阉割的scheme解释器,包 ...

  3. scheme 之门

    scheme 之门 开始之前 这是一篇 Scheme 的介绍文章. Scheme 是一个 LISP 的方言, 相对于 Common LISP 或其他方言, 它更强调理论的完整和优美, 而不那么强调实用 ...

  4. Licp - 一个玩具解释器的实现

    纸上得来终觉浅,绝知此事要躬行. 最近看了 SICP,其第四章讲述了一个简单的 Scheme 解释器的实现.粗看了一遍后决定自己用 C 语言实现一个残疾的 Scheme 解释器,想来这样的学习效果应该 ...

  5. GNU m4 教程[转]

    原文:http://blog.csdn.net/timekeeperl/article/details/50738164 作者:garfileo  作者主页 本文整理自:https://segment ...

  6. (转)完全用GNU/Linux工作 by 王珢

    完全用GNU/Linux工作 王珢      (看完这篇博文,非常喜欢王珢的这篇博客,也我坚定了学gnu/linux的决心,并努力去按照国外的计算机思维模式去学习编程提高自己.看完这篇文章令我热血沸腾 ...

  7. windows下C++环境的配置

    方法一--VS: 使用windows开发神器visio studio.这种方法比较简单,直接下载一个最新的vs安装就行.不单单是C++,C.C#.VB等都可以开发. 方法二--只安装C++编译器: 最 ...

  8. 清华申请退学博士作品:完全用Linux工作

    http://www.cnblogs.com/cbscan/articles/3252872.html 下文地址 http://blog.oldboyedu.com/use-linux/ 按: 尽管我 ...

  9. 王垠:完全用Linux工作

    来自: Zentaur(alles klar) 录一篇旧文 作者:王垠 完全用Linux工作,抛弃windows 我已经半年没有使用 Windows 的方式工作了.Linux 高效的完成了我所有的工作 ...

随机推荐

  1. Ubuntu 14.04 64位安装Android Studio 和 genymotion (上)

    先说下,Ubuntu 上安装Android Studio真是一路坑阿,一路坑阿,加上天  朝 防火墙挡着,折腾了快一天才弄好阿 找了n多教程,md不是抄的就是转的,而且都没说清楚具体咋装阿,一个图一个 ...

  2. memcached学习——分布式算法(Consistant hash + 虚拟节点)(三)

    1.取余算法 优点:数据分布均匀缺点:当服务器动态的添加.删除节点或者某台server down掉,会导致命中率超大幅度下降,甚至导致服务不可用 2.Consistant Hash算法:一致性哈希算法 ...

  3. SqlServer 挂载本地盘符到服务器端,方面备份还原

    --此脚本要在登录上SqlServer远程服务器后才能执行,把数据库备份到本地(内网使用) --(例如我用本机SqlServer客户端连接上192.168.3.12服务器时,执行脚本,可以把指定数据库 ...

  4. solr全文检索基本原理

    场景:小时候我们都使用过新华字典,妈妈叫你翻开第38页,找到“坑爹”所在的位置,此时你会怎么查呢?毫无疑问,你的眼睛会从38页的第一个字开始从头至尾地扫描,直到找到“坑爹”二字为止.这种搜索方法叫做顺 ...

  5. laravel敏捷应用

    App Category Recipes dealing with Laravel's App facade Checking Your Environment Checking if You're ...

  6. 函数返回char* 的解决方案

    在C语言中,自动变量在堆栈中分配内存.当包含自动变量的函数或代码块退出时,它们所占用的内存便被回收,它们的内容肯定会被下一个所调用的函数覆盖.这一切取决于堆栈中先前的自动变量位于何处,活动函数声明了什 ...

  7. ASP.NET获取用户端的真实IP

    ASP.NET获取用户端的真实IP在各种场景都能用到,但是用户网端变幻莫测情况众多,获取真实IP还真是不容易啊.下面分享个比较好一点的方法: 获取IP初始版本 /// <summary> ...

  8. java开发webservice的几种方式

    webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2 Axis是apache下一个开源的webservice开发组件 ...

  9. VirtualBox虚拟机网络设置

    VirtualBox虚拟机网络设置 测试环境:物理机win10企业版本,VirtaulBox版本5.0.14,虚拟机安装Windows XP及linux系统 想实现虚拟机上网的最简单方式,修改虚拟机网 ...

  10. Lesson 1: What is design? Why is it important?

    Week 2: What is design? Why is it important? Article 1: Startups, this is how design works. It's a s ...