JVM 语言的探索发现
又在 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 语言的探索发现的更多相关文章
- [转载] 详述三种现代JVM语言--Groovy,Scala和Clojure
转载自http://www.tuicool.com/articles/jYzuAv和http://www.importnew.com/1537.html 在我与Martin Fowler曾经合作呈现的 ...
- 04.从0实现一个JVM语言系列之语义分析器-Semantic
从0实现JVM语言之语义分析-Semantic 源码github, 如果这个系列文章对您有帮助, 希望获得您的一个star 本节相关语义分析package地址 致亲爱的读者: 个人的文字组织和写文章的 ...
- 03.从0实现一个JVM语言系列之语法分析器-Parser-03月01日更新
从0实现JVM语言之语法分析器-Parser 相较于之前有较大更新, 老朋友们可以复盘或者针对bug留言, 我会看到之后答复您! 源码github仓库, 如果这个系列文章对你有帮助, 希望获得你的一个 ...
- 02.从0实现一个JVM语言之词法分析器-Lexer-03月02日更新
从0实现JVM语言之词法分析器-Lexer 本次有较大幅度更新, 老读者如果对前面的一些bug, 错误有疑问可以复盘或者留言. 源码github仓库, 如果这个系列文章对你有帮助, 希望获得你的一个s ...
- 05.从0实现一个JVM语言之目标平台代码生成-CodeGenerator
从0实现JVM语言之目标平台代码生成-CodeGenerator 源码github仓库, 如果这个系列文章对你有帮助, 希望获得你的一个star 本节相关代码生成package地址 阶段性的告别 非常 ...
- 比较偏门的JVM语言Quercus - PHP on JVM
其实,我不确定Quercus是否可以被认定为一门JVM语言:其次Quercus这个东东分开源版与商业版,开源版只能解释执行.而商业版能编译成Java字节码. 但我知道国内,阿里巴巴很早就在使用它,当然 ...
- 01.从0实现一个JVM语言之架构总览
00.一个JVM语言的诞生过程 文章集合以及项目展望 源码github地址 这一篇将是架构总览, 将自顶向下地叙述自制编译器的要素; 文章目录 01.从0实现一个JVM语言之架构总览 架构总览目前完成 ...
- 00.从0实现一个JVM语言系列
00.一个JVM语言的诞生 由于方才才获悉博客园文章默认不放在首页的, 原创文章主要通过随笔显示, 所以将文章迁移到随笔; 这篇帖子将后续更新, 欢迎关注! 这段时间要忙着春招实习, 所以项目更新会慢 ...
- 2018-01-19 Xtext试用: 5步实现一个(中文)JVM语言
续上文Xtext试用: 快速实现简单领域专用语言(DSL). 基于官方教程: Five simple steps to your JVM language 达成如下语言: 它被Quan6JvmMode ...
- zabbix 布署实践【4 服务器自动探索发现,并且自动关联模版】
使用管理员登录zabbix后,在配置---自动发现--创建发现规则 如下:我们的需求是监听办公网内openstack的所有虚拟机,在其VM创建后,自动加到zabbix监控中来,并自动关联监控模版 可以 ...
随机推荐
- 25. Socket与粘包问题
1. Socket概念 Socket允许应用程序通过它发送或接收数据,对其进行像对文件一样的打开.读写和关闭等操作,从而允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信.Socket ...
- iOS中委托使用小结
1.声明委托对象,并根据需要设置方法为可选还是必选,默认设置可选@optional @protocol CCHighSeasPoolDistributeDelegate <NSObject> ...
- 如何在 ubuntu 上搭建 minio
由于腾讯的对象存储服务器(COS)的半年免费试用期已过,所以寻思鼓捣一下 minio,试着在自己的服务器上搭建一套开源的 minio 对象存储系统. 单机部署基本上有以下两种方式. 直接安装 最基础的 ...
- 项目中maven依赖无法自动下载
[解决方法]: 安装目录conf--修改settting.xml文件在mirrors标签下添加子节点 <mirrors> <!-- mirror | Specifies a repo ...
- 文件操作(C语言)
1. 为什么使用文件? 如果没有文件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运行程序,是看不到上次程序的数据的,如果要将数据进行持久化的保存,我们可以使用 ...
- 循环程序结构设计(python)
文章目录 1.基本概念 2.for循环 2.1 for循环基本结构 2.2 实例介绍 2.2.1 循环输出字符 2.2.2循环输出2000以内的素数 3.whlie循环 3.1 while循环基本结构 ...
- es安全认证search-guard配置
大数据安全系列的其它文章 https://www.cnblogs.com/bainianminguo/p/12548076.html-----------安装kerberos https://www. ...
- Quartz集群增强版_01.集群及缺火处理(ClusterMisfireHandler)
Quartz集群增强版_01.集群及缺火处理(ClusterMisfireHandler) 转载请著名出处 https://www.cnblogs.com/funnyzpc/p/18542452 主要 ...
- 选型4G-Cat.1模组Air780E,必须要说的注意事项!
Air780E是合宙低功耗4G-Cat.1模组经典型号之一,累计出货数量2000万+,广泛应用于物联网各行业.在此,特别感谢各位大佬的信任与支持. 写这篇文档的目的是什么呢? 从用户的角度,解答大 ...
- dotnet学习笔记-专题06-过滤器和中间件-01
1. 基本概念 在ASP.NET Core中,中间件和过滤器都是处理HTTP请求的重要组件,但它们在应用中的位置.作用范围以及使用方式有所不同. 1.1 中间件和过滤器的区别 1.1.1 中间件 位置 ...