当前位置: 首页 > 软件库 > 开发工具 > Java开发工具 >

Mirah

基于JVM平台的静态类型语言
授权协议 未知
开发语言 Java Ruby
所属分类 开发工具、 Java开发工具
软件类型 开源软件
地区 不详
投 递 者 宋昕
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Mirah,又叫做Duby,又一个基于JVM平台的静态类型语言,它拥有Ruby一样的语法的同时,且拥有Java般的速度。他是由JRuby衍生出来的项目,旨在让Ruby能更进一步的沁入JVM平台。

Mirah(Duby)的特性:

  • Ruby的语法
  • 可编译为.class或.java
  • 拥有Java般的速度

代码示例1:

import java.util.Collections
import java.util.ArrayList

list = ArrayList.new [9,5,2,6,8,5,0,3,6,1,8,3,6,4,7,5,0,8,5,6,7,2,3]
puts "unsorted: #{list}"
Collections.sort(list) {|a,b| Integer(a).compareTo(b)}
puts "sorted: #{list}"

代码示例2:

import "java.lang.System"

def foo
  home = System.getProperty "java.home"
  System.setProperty "hello.world", "something"
  hello = System.getProperty "hello.world"

  puts home
  puts hello
end

puts "Hello world!"
foo

 

Mirah的设计原则:

  • 平台无关
  • 摆脱对后端类型系统的具体决定
  • 代码生成,或其他细节由外部语言确定
  • 没有运行时的依赖库

 

  • 最近在OSCON举行的新兴语言训练营( 第1 天和第2 天的覆盖范围)上有许多关于处于不同开发阶段的新语言的演讲列表,这些演讲只有几周的历史,而更成熟的语言如Google Go或Newspeak ,以及名副其实的D之类的老朋友。 JRuby的Charles Nutter提出了Mirah语言,它将吸引所有喜欢Ruby语法的人。 InfoQ赶上了Charles Nutter,以了解Mirah与普通的旧

  •   Mirah, 刚刚看到的一门新的语言,号称Javanese中的ruby,formerly known as Duby. 也许哪一天就会心血来潮的学习探究一番,今天在此记下来。因为看过Ruby,Clojure, 都记不起什么开始的。It's creator is Charles Nutter the author of JRuby. 他们真是牛,写一个语言就像我们写一个Hello World那样

 相关资料
  • 本文向大家介绍动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言介绍,包括了动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言介绍的使用技巧和注意事项,需要的朋友参考一下 关于如题这几个概念,大部分人应该比较熟悉,但是我昏了好久,所以写下来加深印象。 1. 动态语言 又叫动态编程语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。比如

  • 上周我更新了Kotlin 1.5,昨天看到谷歌打算让Jetpack成为设计UI的首选选项后,我想做一些测试。 问题是将我的项目更新为静态编程语言1.5,当尝试构建项目时,我得到以下错误: 静态编程语言1.5与Jetpack Compose不兼容吗?在谷歌搜索问题后,我找到了版本,其中提到了Jetpack Compose,但不是以“不兼容”的方式。 你对此有任何答案吗?我应该使用吗?在这种情况下,我

  • 一个机器或语言是用来计算的,根据计算机模型的定义,其操作的是存储器里的数据,就现在流行的用二进制实现的计算机中(曾出现过三进制计算机),数据本质都是0和1,但机器毕竟是为人服务的,解决的是现实问题,它操作的数据需要有现实的含义,所以基本上所有语言都有类型系统,即便是汇编和机器语言,也有整数和浮点的区别 类型系统是很复杂的理论,值得用一本厚书来写,好点的资料有《类型与程序设计语言》,但我没看懂,因为

  • 我试着写一个小函数,它接受两个列表,并根据另一个列表的元素对一个进行排序。所以类似于: 将产生一个排序列表。 然而,可能是一个不同的列表,比如整数、浮点数或其他列表。理想情况下,我希望我的程序能够获取我抛出的任何列表,根据

  • 两者的计算结果都为false。(顺便说一句,比较是不必要的,因为类不会重写Object中的equals。) 和都是,因为它们可比,没有错误。比较两个具有不同声明的泛型类型的对象是非法的。 在进一步检查时,字段将通过调用包私有的本机方法,如下所示: 除了Java文档对“表示基元类型”的模糊暗示之外,我找不到任何关于这方面的文档。这个领域有什么用处吗?它在包装类本身中没有使用。 (编辑) 是真的。 还

  • 前面说泛型的时候,提到了C++模板的实现方式是动态特性静态化,在实际情况中,这是一个提高效率的好办法。动态性的好处是灵活,开发简便,静态性的特性是效率高,编译期检查较好,因此很自然地就有一个问题,能不能各取所长,达到两全其美?应该说,在一定程度上是可以的,比如这篇即将讨论的静态类型推导,简称类型推导,因为动态类型无所谓什么推导。个人认为类型推导是编译原理最复杂的东西之一,其他复杂的有垃圾回收,代码

  • 我正在Kotlin进行大师/细节流程活动。我有碎片不匹配的问题,因为在一个活动中我需要Android。支持v4.app。Fragment和其他android。应用程序。碎片我实现了自己的细节片段,并继承了Android系统。支持v4.app。用于修复ListActivity中supportFragmnet事务中不匹配的片段 但是,我在DetailActivity中的fragmentManager中

  • 为便于开发,larva采用动态类型,于是首先遇到的一个问题就是,在转化为java的时候,如何处理动态类型带来的问题。乍一看,这个不是很复杂,已经有前车之鉴了,Cython就可以把python代码直接转化成C代码,我的做法和Cython有相似之处,但考虑效率问题,做了一点修改 (虽然第一版本并不实现class语法来自定义类,不过在论述这个问题的时候,假定有自定义类,因为主要矛盾就在自定义类的属性方面