Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >TVM虚拟机

TVM虚拟机

原创
作者头像
上海茶芯科技
发布于 2025-04-16 00:21:20
发布于 2025-04-16 00:21:20
450
举报

技术核心优势

1. TVM 引擎支持 Lisp、JavaScript、Python、Ruby、Lua、Pascal、Basic 等多种语法。

2. TVM 超微型内核引擎(不足500kb),拥有几百个实用函数。 内核模块非常紧凑,所需系统资源很

小,因此与其他语言相比加载执行起来更加快速。

3. TVM 建立在通用的UNIX系统的C语言库函数基础上, 可以运行在各种操作系统平台,如

WindowsLinux,BSDs,Mac OS等。

4. TVM 引擎可以进行源代码链接,生成独立的可执行文件。

5. TVM 引擎以共享库库的方式可以嵌入到宿主系统中,可作为应用开发的语言平台。

6. 动态脚本语言,简单易学,模块化集成,同时具有教学语言的优点: 透明和友好提示。

7. 支持符号单元运算, 任何符号都可以用作定义计算的行为,突破了以往计算机编程汉字仅能作

为字符串数据来处理的局面, 可将任何符号(例如:中文、简繁体汉字、少数民族语言文字)作

为计算机代码来运行。

8. 面向对象,基于原型继承。

9. 函数式编程涵盖LISP语言抽象语法、独特的符号、表达式处理等突出特点。

10. 同时拥有 C 语言的访问底层数据单元,执行系统操作的灵活快捷的特点,和 C 语言一样可以定

义结构,访问结构成员和进行指针操作。

11. 动态语言弱类型,数据使用前无需宣告声明。 而C语言在编译的过程中须明确操作数的内存单元

大小和长度,因此使用前必须事先申明变量符号和函数符号的数据类型。

12. 集中强化符号和表达式的处理和操作。包括修改,插入,删除复杂嵌套列表和多维数组结构中的

元素。

13. 具有多态函数的特点,参与函数运算的参数类型不限和参数个数不限,这使得定义函数有很强的

灵活性。

14. 函数是特殊的列表,可以象操作列表一样来对函数进行组合和拆分。 除了定义函数外,还可以

用宏实现在重构表达式。

15. 支持流的输入输出操作,可以包含控制字符的二进制数据访问。

16. 支持Perl语言兼容的正则表达式(PCRE)文本处理。

17. 具有内存垃圾自动收集的功能。当对象不再被引用时,它们所占用的内存空间自动被回收后再利

用。

18. 拥有对象、符号目录,供多人协作完成的大型软件项目,既可以引用他人的目标模块,又可以避

免变量或函数重名的覆盖危险。

19. 除了使用内建函数外,还可以通过导入共享库来进行功能扩展。 比如调用 windows 操作系统的

库函数来实现GUI界面,使用 COM 对象、.NET 框架等等。

20. TeaScript 可运用于分布计算、科学统计、图形与图像和人工智能领域。 HTTP、 TCP/IP 和

UDP 套节字界面使得它很容易编写网络应用程序。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
TVM虚拟机应用实例
TVM虚拟机基于符合UNIX标准的C语言库函数构建,具备跨平台特性,可适配多种主流操作系统。该虚拟机采用共享库架构实现系统级嵌入,为宿主环境提供高效的编程语言支持平台。
上海茶芯科技
2025/04/16
550
TVM虚拟机应用实例
为什么Lisp语言如此先进?(译文)
上周,《黑客与画家》总算翻译完成,已经交给出版社了。 翻译完这本书,累得像生了一场大病。把书稿交出去的时候,心里空荡荡的,也不知道自己得到了什么,失去了什么。 希望这个中译本和我的努力,能得到读者认同和肯定。 下面是此书中非常棒的一篇文章,原文写于八年前,至今仍然具有启发性,作者眼光之超前令人佩服。由于我不懂Lisp语言,所以田春同学帮忙校读了一遍,纠正了一些翻译不当之处,在此表示衷心感谢。 ============================ 为什么Lisp语言如此先进? 作者:Paul Graham
ruanyf
2018/04/12
1.3K0
TVM 学习指南(个人版)
最近粗略的看完了天奇大佬的MLC课程(顺便修了一些语法和拼写错误,也算是做了微弱的贡献hh),对TVM的近期发展有了一些新的认识。之前天奇大佬在《新一代深度学习编译技术变革和展望》一文中(链接:https://zhuanlan.zhihu.com/p/446935289)讲解了TVM Unify也即统一多层抽象的概念。这里的统一多层抽象具体包括AutoTensorization用来解决硬件指令声明和张量程序对接,TVM FFI(PackedFunc)机制使得我们可以灵活地引入任意的算子库和运行库函数并且在各个编译模块和自定义模块里面相互调用。TensorIR负责张量级别程序和硬件张量指令的整合。Relax (Relax Next) 引入relay的进一步迭代,直接引入first class symbolic shape的支持 (摘抄自《新一代深度学习编译技术变革和展望》一文)。然后这些抽象可以相互交互和联合优化来构造深度学习模型对应的最终部署形式。我个人感觉TVM Unify类似于MLIR的Dialect,但是这几个抽象的直接交互能力相比于MLIR的逐级lower我感觉是更直观方便的,毕竟是Python First(这个只是我最近看MLC课程的一个感觉)。对这部分内容感兴趣的读者请查看天奇大佬的TVM Unify介绍原文以及MLC课程。
BBuf
2022/09/28
3.9K0
TVM 学习指南(个人版)
【AI系统】TVM 实践案例
在本文我们探讨一下,如何利用 AI 编译器在新的硬件上部署一个神经网络,从算法设计到实际运行,有哪些需要考虑的地方?本文将以 TVM 为例,首先介绍一下 TVM 的工作流:
用户11307734
2024/12/02
3410
Java核心技术整理(七)---Lambda表达式
Java8新特征Lambda表达式,读作λ表达式,它实质属于函数式编程的概念,要理解函数式编程的产生目的,就要先理解匿名内部类。lambda写的好可以极大的减少代码冗余,同时可读性也好过冗长的内部类,匿名类。
葆宁
2022/01/13
4260
Java核心技术整理(七)---Lambda表达式
C语言相关知识点(不定期更新内容)
coutinue只能在循环当中使用 关键字不能用作变量的 typedef是用来给类型取别名的变量 一条语句结束的时候后面要有分号 函数后面不写分号 int main( )是函数,大括号和里面的是函数体,函数和函数体之间不能有分号 void是无、空的意思,后面没有返回语句return 0 括号里面的都是参数 printf是一个库函数 %d指定的是一种格式,它的意思是整数 跟输入输出相关的头文件都要包含stdio.h \0是一个字符,是一个字符串作为结束的标志 字符串的末尾隐藏一个\0 strlen是一个函数,可以求字符串的长度,统计的是一个字符串的长度 C语言代码是一条一条的语句构成的 C语言是一种结构化的程序设计语言 if语句,switch语句就是循环语句 int是一种数据类型 整形和字符型才有signed和unsigned 可以省略不写的类型可以放到中括号里面去 表示真假的变量,我们把它称作布尔值 -Bool类型创建的变量,里面只能放真和假 -Bool = bool,bool是关键字 sizeof后面如果放的是类型,括号不能省略,如果是表达式或者变量,就能省略 %zd,打印的就是sizeof的返回值 33 + 12 加号叫做操作符,33和12叫做操作数 加号此时又叫双目操作符,因为有两个操作数 %只能用于整数取模,不能用于小数取模 End Of File的值就是-1 全局变量不初始化的时候默认值是零 默认情况下,if和else后面只能跟一条语句 布尔类型是c99之后才有的 条件操作符也叫三目操作符 双引号也叫界定符 每个case语句后面结束的时候都要加上break sqrt是一个库函数-计算平方根 system的头文件是#include<stdlib.h> strcmp是一个库函数,头文件是#include<string.h> 0x开头的数字是一个十六进制的数字 void表示函数不返回任何值 [ ]叫做下标引用操作符 地址是用%p来打印 sizeof可以计算类型或者变量的长度 变长数组不能初始化 库函数中的头文件用尖括号,自己定义的函数用双引号 全局变量的作用域是整个工程 Add(a,b)把a传给它,把b传给它 set-arr(arr,sz)表示把arr数组中sz个元素设置一下 在函数的声明中,形参可以省略,但形参的类型不能省略 枚举也是一种特殊的整形 条件表达式的执行次数总是比循环表达式的执行次数多一次 递归无限的递归下去,就会出现栈溢出 Stack overflow栈溢出 数组的下标既叫下标,又叫索引 [ ]是双目操作符 在函数调用的时候,函数后面的括号就是函数调用操作符 结构体类型属于自定义类型 char类型的取值范围-128~127 整形提升讨论的是表达式中char和short类型的值 算术转换讨论的是类型大于等于整形的类型的其他类型 内存单元的编号 = 地址 = 指针 int*  pa = &a,*表示pa是指针变量,int表示pa指向的变量a的类型是int,这里的*是解引用操作符,也叫间接访问操作符 指针 - 指针的绝对值是指针和指针之间的元素个数,计算的前提条件是两个指针指向的是同一个空间 size_t是一种无符号整型 {   数组名是数组首元素的地址 但是有两个例外: 1.sizeof(数组名) 这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节 2.&数组名 这里的数组名也表示整个数组,取出的是整个数组的地址 除此之外,所有的数组名都是首元素的地址 } 常量字符串放到只读数据区域 printf函数的返回值是打印在屏幕上字符的个数
用户11290648
2024/09/25
930
大神用Python编写虚拟机解释器
群内不定时分享干货,包括最新的python企业案例学习资料和零基础入门教程,欢迎初学和进阶中的小伙伴入群学习交流 环境介绍 环境采用带桌面的Ubuntu Linux环境, LX终端(LXTerminal):Linux命令行终端,打开后会进入Bash环境,可以使用Linux命令 GVim:非常好用的编辑器,最简单的用法可以参考课程Vim编辑器 环境使用 众所周知,python语言作为一门超级人性化的语言越来越被受到重视。虚拟服务同样受到人们的重视,那么本次项目的目的就是让大家学会使用python制作一个虚
企鹅号小编
2018/01/12
8910
大神用Python编写虚拟机解释器
函数式编程初探
http://www.ruanyifeng.com/blog/2012/04/functional_programming.html 诞生50多年之后,函数式编程(functional programming)开始获得越来越多的关注。 不仅最古老的函数式语言Lisp重获青春,而且新的函数式语言层出不穷,比如Erlang、clojure、Scala、F#等等。目前最当红的Python、Ruby、Javascript,对函数式编程的支持都很强,就连老牌的面向对象的Java、面向过程的PHP,都忙不迭地加入对匿
Albert陈凯
2018/04/04
6760
函数式编程初探
最全的C语言基础知识梳理总结
C语言是当代人学习及生活中的必备基础知识,应用十分广泛,下面为大家带来C语言基础知识梳理总结,C语言零基础入门绝对不是天方夜谭!
诸葛青云
2019/06/19
2.1K0
最全的C语言基础知识梳理总结
人工智能学习笔记
人工智能并非专家系统,但是却或多或少的与专家系统有关系,可以说专家系统是人工智能很早期的存在形式。专家系统(ES, Expert System)是一种模拟人类专家解决领域问题的计算机程序系统。 专家系统具有如下的一些特点: 1)知识的汇聚 2)启发性推理 3)推理和解释的透明性 4)知识的更新 典型的专家系统模型如图:
xiangzhihong
2022/11/30
5340
【C语言】基本语法知识&&C语言函数&&操作符详解
首先介绍一下我使用的工具:VS2019——集成了很多的功能:编辑、编译、链接、运行、调试等
用户10925563
2024/06/04
3470
【C语言】基本语法知识&&C语言函数&&操作符详解
NLP入门之语音模型原理
这一篇文章其实是参考了很多篇文章之后写出的一篇对于语言模型的一篇科普文,目的是希望大家可以对于语言模型有着更好地理解,从而在接下来的NLP学习中可以更顺利的学习. 1:传统的语音识别方法: 这里我们
云时之间
2018/04/11
1.5K0
NLP入门之语音模型原理
【C语言篇】细数C语言中的奥秘:你真的了解这些关键概念吗?
​ ⽬前已知已经有上千种计算机语⾔,⼈们是通过计算机语⾔写的程序,给计算机下达指令,让计算机 ⼯作的。
半截诗
2024/10/09
1550
【C语言篇】细数C语言中的奥秘:你真的了解这些关键概念吗?
C语言基础知识梳理总结[通俗易懂]
C语言是当代人学习及生活中的必备基础知识,应用十分广泛,下面为大家带来C语言基础知识梳理总结,C语言零基础入门绝对不是天方夜谭!
全栈程序员站长
2022/10/01
8440
【从零开始学深度学习编译器】十,TVM的整体把握
大概4个月前开始接触TVM,虽然是0经验开始看,但目前对TVM的IR以及Pass,Codegen,Scheduler等也有了一些基础的认识。所以这篇文章的目的是梳理一下TVM的整体架构,复盘一下自己学到了什么,以及为想学习TVM的小伙伴们提供一个整体思路。「从零开始学深度学习编译器」这个专题的文章和实验代码都被我汇总放到了https://github.com/BBuf/tvm_learn这个仓库中,当然是希望「大力点一下Star了」,感激不尽。仓库目录如下:
BBuf
2021/08/19
1.5K0
Lisp的本质(The Nature of Lisp)学习思考
Lisp的本质(The Nature of Lisp)学习思考 作者 Slava Akhmechet 译者 Alec Jang 出处: http://www.defmacro.org/ramblings/lisp.html 简介 最初在web的某些角落偶然看到有人赞美Lisp时, 我那时已经是一个颇有经验的程序员。在我的履历上, 掌握的语言范围相当广泛, 象C++, Java, C#主流语言等等都不在话下, 我觉得我差不多知道所有的有关编程语言的事情。对待编程语言的问题上, 我觉得自己不太会遇到什么大问题
Florian
2018/02/05
1.9K0
JVM学习- - -虚拟机栈详解
由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。
用户10216580
2023/01/07
5210
JVM学习- - -虚拟机栈详解
Scheme语言实例入门--怎样写一个“新型冠状病毒感染风险检测程序” 1,表达式2,原子3,表(list) 4,点对(pair)5,向量(vector)6,变量7,
2020的春季中小学受疫情影响,一直还没有开学,孩子宅在家说想做一个学校要求的研究项目,我就说你做一个怎么样通过编程来学习数学的小项目吧,用最简单的计算机语言来解决小学数学问题。虽然我是一个老码农,但一直不赞成教小学生学编程,觉得这是揠苗助长,小学生不应该过早的固化逻辑思维而放松形象思维,某些少儿编程机构居然教学C++游戏编程,我觉得这真是在摧残祖国的花朵。现在孩子宅在家 ,想让他学点什么好几次冒出学编程的想法都被自己给否决了,直到我看到数学老师要求同学们整理小学阶段的数学公式、概念,我看到有一个小朋友居然画出了平面几何体的“继承”关系,让我眼前一亮:这种抽象关系如果用程序来表示不正合适吗?明白抽象方法了,那么学编程问题就不大了。于是我在想应该教孩子学什么语言比较好:LOGO、VB还是炙手可热的Python?虽然我非常熟悉C#,但需要了解许多背景知识,还需要安装一个很大的框架环境,显然C#不适合小学生学习,Java也是。LOGO是老牌的儿童编程语言了,操控一个小海龟来画图很形象,VB入门简单,但要一个小学生熟悉它的集成开发环境要求还是高了点,选Python无非就是因为AI应用火它就火,除此之外我找不出它适合儿童使用的理由。
用户1177503
2020/06/19
1.6K0
JVM虚拟机栈
有不少Java开发人员一提到Java内存结构,就会非常粗粒度地将JVM中的内存区理解为仅有Java堆(heap)和Java战(stack)?为什么?
麋鹿大哥
2020/08/19
7190
C++条件分支结构
实数的余数——两个参数分别是被除数和除数double fmod(double, double)
风骨散人Chiam
2020/10/28
6180
相关推荐
TVM虚拟机应用实例
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档