又在 WIKI 上溜达了一下 https://en.wikipedia.org/wiki/List_of_JVM_languages,有一些新的发现:

ColdFusion Markup Language (CFML), 和设想的 https://www.cnblogs.com/inshua/p/17434305.html 相似

Ballerina,开始有点震惊,有一部分和我的构想相似,但是看了看细节,凑合吧,让人惊叹的是完成度很高。例如

这个语言甚至支持对 RESTful 请求的 Literal,很有意思。

为什么说凑合呢?例如它号称支持消息队列,怎么支持的呢?

// https://central.ballerina.io/ballerinax/kafka
kafka:ConsumerConfiguration consumerConfiguration = {
groupId: "group-id",
topics: ["kafka-topic-1"],
pollingInterval: 1,
autoCommit: false
}; listener kafka:Listener kafkaListener = new (kafka:DEFAULT_URL, consumerConfiguration); service on kafkaListener {
remote function onConsumerRecord(kafka:Caller caller, kafka:ConsumerRecord[] records) {
// processes the records
...
// commits the offsets manually
kafka:Error? commitResult = caller->commit(); if commitResult is kafka:Error {
log:printError("Error occurred while committing the offsets for the consumer ", 'error = commitResult);
}
}
}

对 rabbitmq 的也类似,https://central.ballerina.io/ballerinax/rabbitmq 。并没有纳入语言本身进行思考。

另外,没想到 Benshell 的实现和我的 VBAInterpreter 非常相似。https://github.com/beanshell/beanshell/blob/master/src/main/java/bsh/BSHBlock.java#L93C48-L93C48

class BSHBlock extends SimpleNode {
.... ....
public Object eval( CallStack callstack, Interpreter interpreter,
Boolean overrideNamespace ) throws EvalError { if ( isSynchronized ) {
// First node is the expression on which to sync
Node exp = jjtGetChild(0);
Object syncValue = exp.eval(callstack, interpreter);
synchronized( syncValue ) { // Do the actual synchronization
return evalBlock(
callstack, interpreter, overrideNamespace, null/*filter*/);
}
}
return evalBlock(
callstack, interpreter, overrideNamespace, null/*filter*/);
}

JVM 语言的探索发现的更多相关文章

  1. [转载] 详述三种现代JVM语言--Groovy,Scala和Clojure

    转载自http://www.tuicool.com/articles/jYzuAv和http://www.importnew.com/1537.html 在我与Martin Fowler曾经合作呈现的 ...

  2. 04.从0实现一个JVM语言系列之语义分析器-Semantic

    从0实现JVM语言之语义分析-Semantic 源码github, 如果这个系列文章对您有帮助, 希望获得您的一个star 本节相关语义分析package地址 致亲爱的读者: 个人的文字组织和写文章的 ...

  3. 03.从0实现一个JVM语言系列之语法分析器-Parser-03月01日更新

    从0实现JVM语言之语法分析器-Parser 相较于之前有较大更新, 老朋友们可以复盘或者针对bug留言, 我会看到之后答复您! 源码github仓库, 如果这个系列文章对你有帮助, 希望获得你的一个 ...

  4. 02.从0实现一个JVM语言之词法分析器-Lexer-03月02日更新

    从0实现JVM语言之词法分析器-Lexer 本次有较大幅度更新, 老读者如果对前面的一些bug, 错误有疑问可以复盘或者留言. 源码github仓库, 如果这个系列文章对你有帮助, 希望获得你的一个s ...

  5. 05.从0实现一个JVM语言之目标平台代码生成-CodeGenerator

    从0实现JVM语言之目标平台代码生成-CodeGenerator 源码github仓库, 如果这个系列文章对你有帮助, 希望获得你的一个star 本节相关代码生成package地址 阶段性的告别 非常 ...

  6. 比较偏门的JVM语言Quercus - PHP on JVM

    其实,我不确定Quercus是否可以被认定为一门JVM语言:其次Quercus这个东东分开源版与商业版,开源版只能解释执行.而商业版能编译成Java字节码. 但我知道国内,阿里巴巴很早就在使用它,当然 ...

  7. 01.从0实现一个JVM语言之架构总览

    00.一个JVM语言的诞生过程 文章集合以及项目展望 源码github地址 这一篇将是架构总览, 将自顶向下地叙述自制编译器的要素; 文章目录 01.从0实现一个JVM语言之架构总览 架构总览目前完成 ...

  8. 00.从0实现一个JVM语言系列

    00.一个JVM语言的诞生 由于方才才获悉博客园文章默认不放在首页的, 原创文章主要通过随笔显示, 所以将文章迁移到随笔; 这篇帖子将后续更新, 欢迎关注! 这段时间要忙着春招实习, 所以项目更新会慢 ...

  9. 2018-01-19 Xtext试用: 5步实现一个(中文)JVM语言

    续上文Xtext试用: 快速实现简单领域专用语言(DSL). 基于官方教程: Five simple steps to your JVM language 达成如下语言: 它被Quan6JvmMode ...

  10. zabbix 布署实践【4 服务器自动探索发现,并且自动关联模版】

    使用管理员登录zabbix后,在配置---自动发现--创建发现规则 如下:我们的需求是监听办公网内openstack的所有虚拟机,在其VM创建后,自动加到zabbix监控中来,并自动关联监控模版 可以 ...

随机推荐

  1. 【赵渝强老师】MongoDB中的索引(上)

    索引是提高查询查询效率最有效的手段.索引是一种特殊的数据结构,索引以易于遍历的形式存储了数据的部分内容(如:一个特定的字段或一组字段值),索引会按一定规则对存储值进行排序,而且索引的存储位置在内存中, ...

  2. 《Vue.js 设计与实现》读书笔记 - 第13章、异步组件与函数式组件

    第13章.异步组件与函数式组件 13.1 异步组件要解决的问题 用户可以简单通过 import 异步导入组件. <template> <component :is="asy ...

  3. C++中的类型推断机制

    1. decltype 的作用 decltype 是C++11引入的一个关键字,用来推断表达式的类型.它返回的是表达式的精确类型,包括引用和const限定符等. 例子: int x = 5; decl ...

  4. eBPF 概述:第 4 部分:在嵌入式系统运行

    1. 前言 在本系列的第 1 部分和第 2 部分,我们介绍了 eBPF 虚拟机内部工作原理,在第 3 部分我们研究了基于底层虚拟机机制之上开发和使用 eBPF 程序的主流方式. 在这一部分中,我们将从 ...

  5. 内核级流量治理引擎Kmesh八大新特性解读

    本文分享自华为云社区<内核级流量治理引擎 Kmesh v0.5 发布!进击的Sidecarless服务网格>,作者:云容器大未来. 我们非常高兴地宣布 Kmesh v0.5.0 的发布.首 ...

  6. WPF中为Popup和ToolTip使用WindowMaterial特效 win10/win11

    先看效果图: 大致思路是:通过反射获取Popup内部的原生窗口句柄,然后通过前文已经实现的WindowMaterial类来应用窗口特效:对于ToolTip,为了保持其易用性,我使用了附加属性+全局样式 ...

  7. 记一次pip/pip3安装uwsgi报错

    背景 本来是想着在centos 7.9的主机上面部署一个flask应用,采用的方式是linux+nginx+uwsgi来进行发布,其他的都没有问题,但是在使用pip安装uwsgi时报错了,安装不成功, ...

  8. NDT论文翻译

    The Normal Distributions Transform: A New Approach to Laser Scan Matching 正态分布变换:激光扫描匹配的新方法 摘要:匹配 2D ...

  9. 洛谷:P5707 【深基2.例12】上学迟到 (纯净的顺序结构)

    本文纯作者吃饱了没事干写的,仅供奇特思路参考和娱乐 最近尝试找一个体量精良的刷题平台重新提升一下自己的编程能力,所以选择了洛谷. 题目描述 学校和 yyy 的家之间的距离为 s 米,而 yyy 以 v ...

  10. 给 Ollama 穿上 GPT 的外衣

    上一篇我们介绍了如何在本地部署 ollama 运行 llama3 大模型.过程是相当简单的.但是现在给大模型交流只能在命令行窗口进行.这样的话就只能你自己玩了.独乐乐不如众乐乐嘛.我们接下来说一下如何 ...