Skip to content

一个基于JuNarsese、启发自LLVM的抽象CIN接口 | A JuNarsese-based general CIN interface inspired by LLVM

License

LGPL-3.0, GPL-3.0 licenses found

Licenses found

LGPL-3.0
COPYING.LESSER
GPL-3.0
COPYING
Notifications You must be signed in to change notification settings

ARCJ137442/NAVM.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NAVM - NAL's Additional Virtual Machine

Conventional Commits

该项目使用语义化版本 2.0.0进行版本号管理。

用于统一CIN(NARS计算机实现)输入输出的抽象语法支持库

  • 🏗️提供一套抽象指令接口
    • 为其它使用Narsese的库提供「指令表征」「指令存取」「基本字符串指令解析」等支持性功能
    • 基于OpenNARS,抽象并提供一套基础指令集合
      • 包括:NSE(输入Narsese文本)、CYC(循环指定周期数)、REM(注释)等
    • 针对CIN的具体实现可参考NAVM_Implements.jl
  • 📌采用「前端用户输入⇒统一中间语转译⇒后端NARS实现」的前后端框架
    • 前端 如:终端文本、NAL脚本等
      • 可以是字符串,也可为其它数据结构
    • 后端 如:OpenNARS、ONA、NARS-Python、PyNARS、OpenJunars、Narjure、NARS-Swift……
      • 主要基于程序纯文本输入输出
  • 🎯可能后续会发展成一套CIN通用的表征、控制、转换DSL(领域特定语言)

概念

CIN (Computer Implement of NARS)

  • 「NARS计算机实现」之英文缩写
  • 指代所有实现NARS的计算机软件系统
    • 不要求完整实现NAL 1~9

前端、后端

前端:处理各类输入(例如终端、脚本)数据,将其翻译成中间语(NAIR)

后端:处理中间语对象,将其翻译成对应CIN命令

中间语 NAIR

  • 所有前端转换成的目标语言
  • 所有后端分派命令的源头语言

CommonNarsese

🔗参考JuNarsese.jl的相关部分

安装

作为一个Julia包,您只需:

  1. 在安装Pkg包管理器的情况下,
  2. 在REPL(julia.exe)运行如下代码:
using Pkg
Pkg.add(url="https://github.com/ARCJ137442/NAVM.jl")

使用

🔗参考NAVM_Implements的具体实现

代码目录概览

  • src: API源码
    • Frontend: 前端模组API
    • Backend: 后端模组API
    • NAIR: 中间语言NAIR
  • test: 测试用例

作者注

  1. 此项目目前仅用于学习,不建议用于生产环境
  2. 此项目最初从另一个接口项目「JuNEI」中分离出来,API、文档等资料可能欠缺
  3. 此项目是JuNarseseJuNarseseParsers的进阶应用

参考

依赖

About

一个基于JuNarsese、启发自LLVM的抽象CIN接口 | A JuNarsese-based general CIN interface inspired by LLVM

Topics

Resources

License

LGPL-3.0, GPL-3.0 licenses found

Licenses found

LGPL-3.0
COPYING.LESSER
GPL-3.0
COPYING

Stars

Watchers

Forks

Releases

No releases published