项目招人+宣传
  • 板块灌水区
  • 楼主wangziwenhk
  • 当前回复10
  • 已保存回复10
  • 发布时间2024/3/16 22:06
  • 上次更新2024/3/17 08:28:31
查看原帖
项目招人+宣传
727556
wangziwenhk楼主2024/3/16 22:06

项目宣传+招人

我们现在正在制作一个语言,名为 Riddle,但是我们的能力以及人手不够,我们需要你们的加入。

Riddle 是一个运行时语言,我们设计它有两种方式运行,第一个是编译为类似 java 的字节码来运行,第二个是翻译成 AST 来运行。

这是一段使用 Riddle 编写的代码 P1196 (暂定代码语法):

var father:array = new array(30010)
var	dep:array = new array(30010)
var size:array = new array(30010)
fun find(x:int):int{
	if(father[x]==x)return x
	else{
		val temp = father[x]
		father[x]=find(father[x])
		dep[x] += dep[temp]
		size[x]=size[father[x]]
		return father[x]
	}
}
fun add(x:int,y:int):void{
	val tx = find(x)
	val ty = find(y)
	if(tx==ty)return;
	father[tx] = ty
    dep[tx] += size[ty]
    size[tx]+=size[ty]
    size[ty]=size[tx]
}
fun init(int n):void {
    for (int i = 1; i <= n; i++) {
        father[i] = i
        dep[i]=0
        size[i]=1
    }
}
fun main(){
	val T
	scanf("%d",&T)
	init(30005)
	while (0<T) {
		T--
        val ch:char,x:int, y:int
        scanf("%c%d%d",&ch,&x,&y)
        if (ch == 'M') {
            add(x, y)
        }
        if (ch == 'C') {
            if (find(x) == find(y)){
                if(x==y)println(0)
                else println(abs(dep[x]-dep[y])-1)
            }
            else println(-1)
        }
    }
    return 0
}

如你所见,该语言的类型定义法类似于 pascal,而变量定义关键词则类似于 Kotlin,我们希望这个语言更加轻量,快速,且通用。

我们还有库机制,可以让用户用不同于 Riddle 的语言编写库的代码,以达到更强大的拓展。

目前该语言有两个语言版本:C++ 和 Kotlin,但是很遗憾,以我的能力无法自主完成所有的工作,所以我希望有人可以帮助我完成该运行时的工作。该语言是完全开源的,可以直接获取所有的源代码。

欢迎您加入我们的开发行列。

2024/3/16 22:06
加载中...