听说过一种只存在于书本上的编程语言“Monkey”吗?

听说过一种只存在于书本上的编程语言“Monkey”吗?

读了一篇有趣的文章《MonkeyTheprogramminglanguagethatlivesinbooks》。初读此文,还以为是这是一篇调侃程序猿的文章呢,怎么会有一种编程语言叫“Monkey”呢?
搜索了一下,恕我孤陋寡闻了,的确有这样一门语言。正如标题所言,这是一种存在于书本上的编程语言,所以鲜有人知。
现在也有一些程序的命名中带有Monkey的,如Android系统自带的Monkey程序,MonkeyRunner等,但是它们和本文讨论的不是一个概念。Monkey是一种类似JavaScript的语言,至于为什么没有流行起来呢,不得而知。
看完该文,我的感觉是Monkey还是一个很新的语言,需要自己实现,学习者可以实现成解释型语言,也可以基于字节码和虚拟机来构建它,可能主要时用以学习和研究的吧。如果能搞清楚这门语言,说不定也自己发明一种新语言呢!
MonkeyisaprogramminglanguagethatyoucanbuildyourselfbyreadingthroughWritingAnInterpreterInGoandWritingACompilerInGo.
Monkey是一种编程语言,你可以通过阅读《用Go语言写一个解释器》和《用Go语言写一个编译器》这两本书来自己构建Monkey语言。
目前,Monkey语言还没有正式被实现,它存在于书本上,实现它完全由您、广大读者们决定。它可以作为一种树形解释器实现,也可以基于字节码编译器和虚拟机实现。(补充理解:译者认为这里是在说Monkey编写的程序是如何运行的,是像JS那样基于解释器执行呢,或者像Java那样基于虚拟机字节码运行。)
通常,Monkey语言编写的代码长这样:
它还可以定义函数:
并且也有条件分支,显式或者隐式的返回值、递归函数等,这意味着我们可以用Monkey这样写:
但是,对每种Monkey实现来说,其镇山之宝是闭包。
《用Go语言写一个解释器》发布于2016年,最新的版本是2019年发布的,版本号为1.6。
Monkey标准的第一本书定义了Monkey的语法,并且描述了它作为一种树形解释器必须包含的特征:
《遗失的章节:一个Monkye的宏系统》这本书发布于2017年,作为一个免费的资料库指导人们如何使用Go语言编写Monkey解释器。它可以被认为是《用Go语言写一个解释器》这本书第五章节的内容,因为它直接建立在前面四章的基础上,并且在书中的末尾扩展了Monkey解释器。
《遗失的章节:一个Monkye的宏系统》为Monkey添加了一个“全天候”、lisp风格的宏系统,这与Elixir的宏系统的工作方式很接近。
《用Go语言写一个编译器》是在2018年发布的,最新版本是2019年新出的1.1。它与《用Go语言写一个解释器》这本书是等价的,因为它没有改变语法,也没有添加任何新特性,它只是将Monkey的实现从一个遍历树的解释器变成一个字节码编译器和虚拟机。类似于从解释型语言(如JavaScript)转换为字节码运行语言(如Java)。
从该书的结尾来看,除了速度提升了三倍以上之外,Monkey的表现和行为跟《用Go语言写一个解释器》这本书结尾描述的没什么两样!
有些读者在阅读本书时喜欢绕道而行:一种不同的实现语言、一些新特性、语法上的一些变化。由于书中展示的代码是MIT授权的,每个人都随心所欲地构建自己的Monkey实现,并向世界上其他地方的人们展示。
这里收集了一些有趣而且很酷的Monkey实现者与我分享的内容。你也构建了自己的Monkey版本吗?让我知道吧,只要给我发邮件就可以了,我的邮箱是:me@thorstenball.com。
其他实现项目:
原文官网:https://monkeylang.org/感兴趣的朋友可以看看。

主题测试文章,只做测试使用。发布者:最新稳定辅助网,转转请注明出处:https://www.744broad.com/14959.html

(0)
上一篇 2023年3月6日 上午2:47
下一篇 2023年3月6日 上午2:53

相关推荐

  • Steam销量三连冠!RUST凭什么轻松超越赛博朋克2077

    Steam销量三连冠!RUST凭什么轻松超越赛博朋克2077   最近一款2013年的老游戏,迎来了属于它的春天,不仅在steam销售榜中赶超了连续7周稳坐第一的《赛博朋克2077》,还蝉联了三周Steam销售榜冠军,甚至就连在线人数也曾数次赶超PUBG。那么这款官方售价116元的2013年老游戏,究竟有着什么样的魅力,竟能蝉联了三周Steam销售榜冠军,甚…

    RUST资讯 2023年2月21日
    70
  • 学编程必须收藏的8个网站

    学编程必须收藏的8个网站 初学编程者看不懂编程指南、工具书是正常的,所有程序员都是从那一步走过来的。除了看书你还可以利用丰富的互联网资源,下面小贝将为你介绍8个在线学习编程的网站,非常值得收藏哦!1.ProgrammingbyDoing对于零基础的新手而言,ProgrammingbyDoing是再合适不过了。在这个编程网站上,有大量的编程作业,你可以按部就班…

  • 程序员周刊-第二期

    程序员周刊-第二期 在技术领域复杂度只会转移并不会消失。—bysuperops“Suchismoderncomputing:everythingsimpleismadetoocomplicatedbecauseit’seasytofiddlewith;everythingcomplicatedstayscomplicate…

    RUST资讯 2023年2月24日
    70
  • Circle Linux 8.4 正式发布了

    Circle Linux 8.4 正式发布了 欢迎来到CircleLinux社区!我们宣布正式发行x86_64和aarch64架构的CircleLinux8.4版本。此发行版是社区每个成员这几个月共同辛勤劳作的结晶。CircleLinux发行版是一个稳定、流畅和安全的平台,它从上游供应商的下游构建(充当昔日CentOS角色)。CircleLinux完全遵守再…

    RUST资讯 2023年2月17日
    80
  • 图文解析新手快速转正攻略

    图文解析新手快速转正攻略 亲爱的创作者,由于你过去一段时间贡献了众多广受欢迎的优质创作,恭喜顺利通过「新手期」。即日起,你的发文权限提高为5篇/天,头条广告、原创标签、接入其他内容源等功能开通条件请留意公告,感谢你对头条号的支持。2018-01-1714:41,这一刻感觉自己真的好幸福!2018新年伊始,不期然做成的第一件事!您好,您的头条号已通过入驻审核,…

  • 最懂女人心,华为“口红耳机”是耳机中的爱马仕

    最懂女人心,华为“口红耳机”是耳机中的爱马仕 文|柳华芳小耳机,大世界,真无线蓝牙耳机(简称TWS耳机)火爆多年,从无到有,已走向主流化,大有“让有线耳机变成古董”的行业趋势,改变了耳机市场的消费潮流。在行业火爆的同时,粗制滥造、千机一面的同质化问题开始浮现,从几十元到几千元,真无线耳机一边创造市场繁荣,一边陷入混乱和迷失。很多品牌只追求销量,忽视品质、创新…

    RUST资讯 2023年3月12日
    20
  • “果酸焕肤”又红又肿,老公都不跟自己说话了

    “果酸焕肤”又红又肿,老公都不跟自己说话了 6月19号,小房到绍兴金柯桥医院做了果酸焕肤项目,她说第二天脸部出现红肿,很疼,因为这件事,丈夫都不跟她说话了。视频:“果酸焕肤”有点疼,做完跟丈夫吵架1看中优惠下了单做完跟丈夫吵架金柯桥医院在绍兴柯桥笛扬路上,小房今年26岁,她说自己脸上有些青春痘,想要做个果酸焕肤项目。小房:“就是从水果中提取的那种适合人体皮肤…

    RUST资讯 2023年2月13日
    60
  • 真美国 数百名记者遭美警袭击,有人左眼永久失明……

    真美国 | 数百名记者遭美警袭击,有人左眼永久失明…… “弗洛伊德之死”引发的抗议活动爆发后,在美国明尼阿波利斯、路易斯维尔等多个城市,越来越多的记者在现场报道中被警察攻击或逮捕。英国《卫报》的一项分析发现,在美国报道弗洛伊德抗议活动的媒体记者中,有148人被捕或受到攻击。而这只是记录了5月26日至6月2日期间发生的袭击或逮捕记者事件中的一部分,真实数字可能…

    RUST资讯 2023年3月11日
    20
  • 赛尔号巅峰斗神:瑞尔斯十年进阶史,斗天之石存在于内心深处

    赛尔号巅峰斗神:瑞尔斯十年进阶史,斗天之石存在于内心深处 瑞尔斯进阶史瑞尔斯准确的说并不是战神联盟的一员,瑞尔斯一直以来的定位都是盖亚的哥哥,作为亲属团存在,但是瑞尔斯的待遇可不比主角团差,依旧有超进化,完全体的形态,甚至到了秩序之战的时候除了没得到封王外也和战联成员们享受了同样的待遇——圣化,除了这些以外还和缪斯一样拥有特殊形态——魔化瑞尔斯,因此虽然不是…

  • Rust语言开发操作系统-第二章(最小化内核)

    Rust语言开发操作系统-第二章(最小化内核) 本章我们将把上一章创建的独立可执行程序编译为内核,并和bootloader链接成为可以被qemu加载的bootimage。为此我们将介绍:目标三元组:cargo在编译内核时,可以用过–target支持不同的系统。targettriple包含:cpu架构、供应商、操作系统和ABI。由于我们在编写自己的…

    RUST资讯 2023年2月21日
    80
关注微信