zoukankan      html  css  js  c++  java
  • Fish Lang

    fish lang是一门基于函数的,可定制语法的编程语言。

    为什么要设计fish这门语言

    目前的编程语言语法都是固定死的,无法很容易的移除一种语法。fish语言一切语法由函数定义,语言只提供一个函数的定义/调用过程。

    fish语言的语法

    print if a b c

    如果函数a为真输出函数b的结果,否则输出函数c的结果。

    loop a b

    循环调用函数b,函数a的返回值次。

    当然,上文中出现的loop,if,print等函数为系统函数,我们可以通过取消注册的方式,取消这个函数的注册。

    我们可以看一个更复杂的代码。

    print if a b c d e

    我们分解一下这个代码。

    代码逆向入栈,从顶到底部为print,if,a,b,c,d,e
    虚拟机调用print函数,print需要一个参数,if出栈,
    if需要3个参数,a,b,c出栈。
    运行a,假设a需要一个参数,d入栈,
    运行d,假设d无需参数,向exa写入true,
    if发现exa为为true,b入栈,c被抛弃,
    运行b,假设b需要一个参数,e入栈,
    运行e,假设e无需参数,向exa写入字符串hello world的地址,
    print发现exa指向为hello world,输出hello world。

    fvm

    Fvm是fish lang的虚拟机,当然现在只是一个原型,大概由一个栈组成,一个函数表,一组变量寄存器组成。

    目标

    小型的,嵌入式的脚本语言。用于路由服务,引导和链接宿主的函数。

    特征

    • 可自定义语法
    • 运行速度快
    • 安全
  • 相关阅读:
    9.27作业
    9.20作业
    9.13作业
    9.6作业
    localstorage,sessionstorage使用
    oracle 客户端重新安装遇到的问题
    HTML5学习笔记(<command>,<details>,<dialog>)
    HTML5学习笔记(HTML5新标签<bdi>)
    html5学习笔记(html5新标签<aside>)
    html5学习笔记(html5新标签<article>)
  • 原文地址:https://www.cnblogs.com/jhy16193335/p/11884694.html
Copyright © 2011-2022 走看看