ARSpark
本帖最后由 RarityEG 于 2022-5-7 20:57 编辑





(排版前纠结:用紫色还是用粉红色呢……)
(2 Hours Later)


只能说本小马脑袋是实在不太正常,放着好好的 TypeScript 不用,自己非要摸一种新语言 —— 重复造轮子,嗯,就是我(认真)
Hello World 程序


其实这不是本小马做的第一门语言,遥想当年本小马也尝试过实现 Jvav,效果大概类似:
输入一行并免费获得其它 4000 行。

输入一行……


……并免费获得其它 4000 行:(?!)



不过这次不一样! 我们隆重向您呈现……

The Slarity Programming Language
集 Ruby 的运行快速,C 的易于使用,Java 的内存低耗,Lua 的丰富功能和 Python 的句尾不加分号于一身的高级编程语言!
(是的,我是在开玩笑)



不过既然已经写出来了,那诸位不妨来看一看 Slarity 的一些(设计的)特性:

1. 超长的 Hello World

一门语言的示例程序通常是从 Hello World 程序开始的,以下是 Slarity 的 Hello World:

  1. main() {
  2.     s = $createString()
  3.     $appendString(s, 104)
  4.     $appendString(s, 101)
  5.     $appendString(s, 108)
  6.     $appendString(s, 108)
  7.     $appendString(s, 111)
  8.     $appendString(s, 44)
  9.     $appendString(s, 32)
  10.     $appendString(s, 119)
  11.     $appendString(s, 111)
  12.     $appendString(s, 114)
  13.     $appendString(s, 108)
  14.     $appendString(s, 100)
  15.     $printString(s)
  16. }
复制代码


是不是和你想象的不太一样?这是因为 Slarity 并不原生支持字符串

可能并不那么令人兴奋的是,Slarity 也不原生支持浮点数。

可能更令人兴奋的是,Slarity 不支持负数字面量 这意味着 -1 是不能被识别的,而 0-1 是可以的。

是不是已经开始迷惑了?那我们来看看下一个……

2. 莫名其妙的变量命名


你可能会认为这样的程序并不可以通过编译:

  1. 123Foo!() {
  2.     456Bar##!!$ = 123
  3. }
复制代码


不过在 Slarity 里,这是可以的,不仅没有任何警告,而且还能完全正常运行
用数字开头,或者加入各种特殊符号(但不包括大多数运算符),都不会改变变量名的识别。
(看来你并不相信,那我们来实验一下?)



3. 超级慢的运行速度

用 Slarity 和 Ruby 各写个程序玩一玩……
通过 1 + 2 + ... + 100000 的性能比对,我们得到了:




……大概差了三倍以上吧。

这是因为本小马过于疯狂,居然直接用 Node 编写解释器,如果改用 C 甚至汇编,就可能会好一些……或者甚至是 Java 都可以,但 JS 的运算能力……如果你用过 Alicorn 就知道是什么感觉了。

(顺便说一句,pinkie 是 Slarity 默认解释器的昵称)

4. 它将被用于 Alicorn 的后续开发!!!


这才是最重要的一点!Alicorn 的很大一部分代码或者新功能,将逐渐尝试改换到使用 Slarity,因为 Slarity:
  • 虽然有 Ruby 的运行速度,但更有 Ruby 的简便
  • 虽然有 C 的使用难度,但更有 C 的可扩展性
  • 虽然有 Java 的内存消耗,但更有 Java 的健壮

而且只要有对应的解释器,它可以运行在任何地方!

5. 玩!玩得开心!


正如我在文档中提出的那样:





欢迎访问 Slarity 编译器的源代码仓库:https://github.com/SlarityLang/SlarityC

也欢迎访问 Pinkie(Slarity 解释器)的源代码仓库:https://github.com/SlarityLang/Pinkie

本文排版借助了 VI Improved

最后施放召唤术:
@天空ag @青蛙的名单 @洞穴夜莺 @尸先peng @HaPi_r @DGai @dengyu @振翮高飞 @William_Shi


Test

尸先peng
本帖最后由 尸先peng 于 2022-4-4 23:35 编辑

愚人节……(bushi
↑↑↑以上仅为开玩笑,别当真↑↑↑


Devanaai
咳咳,前几天用了一段时间Alicorn,然后,然后搓整合的时候顺手换回pcl了

搞得我现在差点没脸回复小马
因为这个所以这期没@我吗

ARSpark
本帖最后由 RarityEG 于 2022-4-4 23:30 编辑
尸先peng 发表于 2022-4-4 23:24
愚人节……(bushi

(我要是闹着玩我就不会单独为此创建新的 Organization 了……(https://github.com/SlarityLang
(气哭(
(我通过编写一个新的编译器来创建一个新的编程语言来制造一个新的功能来改进一个启动器来玩 Minecraft)

ARSpark
满船清梦丶 发表于 2022-4-4 23:24
咳咳,前几天用了一段时间Alicorn,然后,然后搓整合的时候顺手换回pcl了

搞得我现在差点没脸回复 ...

(要说不生气那肯定是假的(
(但是既然现在我可以打字,那大概就是还没有哭到撕心裂肺的程度(
(迷离一点都不知道怜香惜玉,居然欺负这么可爱的我(
(哇哇大哭(

试炼
看不懂
我是个**

De/Fe-東
BUG百出的新编程语言好东西

子逍遥
点进来的我,明明和主题无关,但是听到这首歌我想起了那个音游

Yi_Kerman
整一手好活

我想啸啊
虽然知道有BGM 但是真的吓到我了我草

速食冻橘
本帖最后由 紅葉 于 2022-4-5 13:20 编辑

鉴定为:ESOLANG

其实用java开发可能会更加轻松。这里推荐个库:https://github.com/antlr/antlr4(其实这东西也有 js-target 和 ts-target

你该不会读cs本科,顺手把编译原理课作业拿出来改改发了吧


速食冻橘
RarityEG 发表于 2022-4-4 23:27
(我要是闹着玩我就不会单独为此创建新的 Organization 了……(https://github.com/SlarityLang)
(气哭 ...

减少工作量的好方法:编制一种方法使语言能够调用宿主语言的库,这样你的语言可以迅速获得js、ts的丰富库,而不必重复写10k+的重复底层代码

小杨Henry
艹这bgm吓了我一跳

振翮高飞
FPC时代的编程fw路过并且表示暂时不尝试去理解

Netherite_Sword
就我看到一堆美元?

dhb111
虽然我看不懂,但楼主一定是个高手

William_Shi
Netherite_Sword 发表于 2022-4-5 19:46
就我看到一堆美元?

你可以看看php的代码,有更多$

dhb19800429
一看这代码就知道楼主是个厉害的人

SHEEP_PLAINS
这语言实在是太艹了

绒毛☆茸爪
这bgm...我DNA动了

Texas0295
令人迷惑的語言規範(x
令人激動的一次大膽嘗試(√

寂华
集 Ruby 的运行快速,C 的易于使用,Java 的内存低耗,Lua 的丰富功能和 Python 的句尾不加分号于一身的高级编程语言!

蚌埠住了
什么大满贯

Netherite_Sword
William_Shi 发表于 2022-4-5 20:06
你可以看看php的代码,有更多$

计算机小白.不会这类知识

DarkLiam
输入:e 输出:eee...(自动咏e)(bushi

ARSpark
Netherite_Sword 发表于 2022-4-5 19:46
就我看到一堆美元?

(其实没有什么特别的,和宿主语言对接的接口函数都以$开头
(这是因为调用接口函数和普通函数的指令不一样

KAURUIGuo
本帖最后由 KAURUIGuo 于 2022-4-10 13:12 编辑
子逍遥 发表于 2022-4-4 23:55
点进来的我,明明和主题无关,但是听到这首歌我想起了那个音游

登 登 登 登登登登登登登登登登

Pink_Dove
输入一行……
……并免费获得其它 4000 行:(?!)

我直接笑爆了,是获得4000行报错嘛(阿伟笑.gif)

        因为你又改名了,插件就把你删掉了(

可是我没改名啊qwp
插件:又让爷背锅

下次接着用粉色的排版,因为鸽子爱吃(?)

yeeek1
大佬啊,但是感觉还用java比较好吧

洞穴夜莺
莫名觉得像php,那玩意也是老多$了

還生
大概知道了这是一个娱乐性质大于实用性的东西,虽然基本没看懂()
悄悄地吐槽一下bgm,刚进来的时候被duang了一下,评分之后页面刷新又被duang了()

DarkLiam
你的Jvav搁浅了(?

Wudji
从描述看优化还是不错的(

谴责
看不懂。。。

西瓜盒子
看不懂大佬的操作

大家来吃鹅蛋
哈哈哈这玩意是认真的吗 笑死我了

道悟隐
好久没看到小马发帖了,还以为摸鱼潜水了。

Nian_Hua1
我草高级

Eriyc
小马贴贴

风擎天下
我连java都还没学完你已经在开发新语言了……

bil65731661670
看不懂 我是个**

z634952493z
看起来有点厉害

PercyDan
集 Ruby 的运行快速,C 的易于使用,Java 的内存低耗

我看这句话:ruby是啥没用过,C。。。易于使用?Java内存。。????
太草了

是一个憨憨awa
我表示我看不懂,但是感觉很牛逼

chuxin618777
可怜的我什么都看不懂呜呜呜

jieshang
好家伙,愣是一点没看懂

jieshang
好家伙,愣是一点没看懂