繁体   English   中英

使用Lua和Python嵌入式,是否有适合Basic的地方?

[英]With Lua and Python embeddable, is there a place for Basic?

我开始在ZX81上使用Basic编程,然后是BASICAGW-BASICQBasic 我转到C(啊,Turbo C 3.1,我几乎不知道你......)

当我开始使用微控制器时,我使用了Parallax的BASIC Stamp 但是,BASIC非常棒,因为它很容易理解并且很难犯错误。 我最终转向装配和C,因为我需要额外的功率(速度,容量,资源等),但我知道如果条形图高得多,许多人将永远不会进入编程微控制器。

我一直在努力制作自己的片上BASIC解释器,但我想知道是否需要BASIC,因为Lua和Python很容易嵌入,并且和BASIC一样平易近人。

  • BASIC比其他语言有什么优势?
  • 它为什么还在?
  • 如果我决定使用解释器制作通用微控制器板,是否有任何理由制作BASIC版本?

许多其他语言被认为已经死亡,但BASIC一直坚持不懈。

[这可能听起来比实际上更负面。 我不是说基本是所有邪恶的根源, 其他人已经说过了 我说这是我们可以留下的遗产。]

“因为它很容易理解而且很难犯错误”这当然值得商榷。 我有一些完全不透明的基本经验。 专业的东西 - 商业产品 - 非常糟糕的代码。 不得不放弃和拒绝工作。

“如果有的话,Basic有什么优于其他语言?” 没有,真的。

“它为什么还在附近?” 有两个原因:(1)微软,(2)所有开始做VB的IT部门现在拥有数百万行VB遗留代码。

“很多其他语言被认为已经死了......”是的 基本与COBOL,PL / I和RPG一起作为遗产,有时成本高于价值。 但是由于“如果它没有破坏不解决它”的大IT政策,他们坐在那里,吸收资源,可以轻松地用更小,更简单,更便宜的维护代替它。 除了它没有“失败” - 它只是不成比例地昂贵。

30岁的COBOL是一个可怕的返工工作。 从2016年开始,我们将会看到30岁的MS Basic,我们无法弄清楚,不想没有,也无法决定如何更换。

“但基本只是一直挂着”似乎有些人喜欢Basic。 其他人认为这是另一种设计糟糕的语言; 它的优点是早期上市并得到大型供应商的支持(IBM,最初)。 设计不佳,早期上市只会让我们留下几十年来一直受到影响的遗产。

我还有1965年版的达特茅斯基础手册。 我不会渴望过去的美好时光。

作为一种架构,BASIC声名鹊起的主要原因是你可以使BASIC解释器非常小 - 只需几KB。 在DG Nova的时代,这是一个胜利,因为您可以使用Business BASIC等系统在具有64K RAM(甚至更少)的机器上构建多用户应用程序。

BASIC(特别是VB)是遗留系统,具有大量现有代码库。 可以说VB实际上是一种语言(有些人会说是COM上的薄包装),它具有类似BASIC的语法。 现在,除了人们对它的熟悉和维护现有的代码库之外,我认为没有理由保持语言。 我当然不会提倡新的开发(请注意,VB.Net并不是真正的BASIC,只是具有类似VB的语法。类型系统没有像VB那样被打破。)

什么从计算世界缺少的是一个有关语言,易于学习和鼓捣,并在主流应用开发头脑份额。 我在8位机器的时代长大,这些系统编程的入门门槛非常低。 机器的架构非常简单,您可以学习在这些机器上编写和编写或多或少的相关应用程序。

现代建筑更加复杂,需要更大的学习能力。 您可以看到人们在BASIC和8位计算机时代就像孩子们学习编程一样容易,并且我认为这个论点有一些优点。 还有一些漏洞使得编程变得更难以进入。 玩具语言在这里没什么用处 - 为了使编程变得有吸引力,必须有可能建立与你正在学习的语言相关的东西。

这导致了一种易于孩子学习的语言问题,但仍然允许他们编写他们可能真正想要的相关程序(甚至游戏)。 它也必须被广泛认为是相关的。

我能想到的最接近的是Python。 它不是这种语言的唯一例子,但它是心灵分享最多的语言 - 而且(IMO)在这个利基市场中必须有相关性的感知。 它也是我所经历过的最容易学习的语言之一(多年来我使用过的30多种语言)。

为什么不试试Jumentum,看看它对你有什么用?

http://jumentum.sourceforge.net/

它是微控制器的开源BASIC

对于微控制器来说,该项目也是lua

http://elua.berlios.de/

BASIC仍然存在,特别是在STAMP实现中,因为它比其他大多数非常容易学习的编程语言都要低。 对于大多数嵌入式BASIC实现,BASIC指令直接映射到单个或一组机器指令,而且开销很小。 用Lua或Python等“更高级”语言编写的相同程序在相同的微控制器上运行速度要慢得多。

PS:尽管命名相似,但像PBASIC这样的基本变体与Visual BASIC几乎没有共同之处。 他们以不同的方式分歧。

好问题...

基本上(原文如此!),我没有答案。 我只想说Lua非常容易学习,可能和Basic一样简单(这也是我的第一语言之一,我在许多8位计算机上使用方言......),但更强大(允许OO)或功能样式,甚至混合它们)和某种程度上更严格(没有转到...)。

我不太了解Python,但从我读过的内容来看,它比Lua简单,强大和严格。

此外,两者都是事实上的“标准化”,即。 没有方言(在各种版本旁边),不像Basic有很多变种。

两者都精心制作VM,高效,(大多数)无bug。 如果您自己创建解释器,则应该从现有的VM中获取并从Basic源生成字节码,或者自己创建。 当然有趣的东西,但耗时,容易出错...

所以,我只想让Basic退休... :-P

PS。:为什么要挂? 也许微软并不陌生......(VB,VBA,VBScript ......)
周围也有很多方言(RealBasic,DarkBasic等)和一些观众。

冒着像摇椅上的两位老人一样的风险,让我脾气暴躁地说“今天的孩子不喜欢BASIC”然后矛盾地说“他们不知道他们有多好”。

BASIC最大的优势始终是它的可理解性。 这是人们可以得到的东西。 学者和语言开发人员长期忽略了这一点。

当你谈到想要实现BASIC时,我假设你不是在谈论行编号的BASIC,而是一个结构化的形式。 问题在于,一旦你开始进入结构化编程 - 函数,'为什么我不能只是GOTO那个位置?'等等 - 真的变得不清楚BASIC会有什么优势,如果有的话比方说,Python。

此外,BASIC“如此容易做对”的一个原因是当时图书馆并不像今天那么重要。 如果不是面向对象的编程,那么图书馆意味着结构化,所以你再次处于这样一种情况:一种更现代的动态脚本语言“更适合”人们今天做得更好的现实。

如果真正的问题是“好的,我想实现一个解释器,因此归结为投资回报”,那么它就成了一个实际上易于实现的语法问题。 我建议BASIC并没有真正有这方面的很多优点是(除非你真的回行号和非常有限的语法)。

总之,我认为你应该投资你的努力在BASIC解释。

嗯,这些人似乎认为,不仅基本仍然在移动领域占有一席之地,而且他们可以从中赚钱:

http://www.nsbasic.com/symbian/

我也开始使用ZX81。 但正如Tony Hoare所说,BASIC中的编程就像尝试使用罗马数字进行长时间划分一样。

许多其他语言被认为已经死亡,但基本只是一直在继续。

可悲的是。 我责备比尔盖茨这个...... BASIC正在担架,一位牧师说最后一次仪式,然后MS把它带回来像天花一样。

我曾经在QBasic时代在BASIC中编程。 QBASIC有子程序,函数,结构(它们曾经被称为类型),我猜就是这样。 现在,与Python具有的所有功能相比,这似乎有限--OO,lambdas,元类,生成器,列表推导,仅举几例。 但我认为,这种简单性是BASIC的优势。 如果您正在寻找一种简单的可嵌入语言,我敢打赌QBasic会更快更容易理解。 对于大多数嵌入/脚本类型的应用程序而言,程序语言可能已经绰绰有余了。

我想说BASIC仍然存在的最重要原因是Visual Basic。 在90年代的很长一段时间里,VB是为Windows编写GUI,COM​​和DB代码而不属于C ++ Turing tarpits的唯一方法。 [也许Delphi也是一个不错的选择,但遗憾的是它从未像VB那样受欢迎]。 我认为这是因为所有这些VB和VBA代码仍然被使用和维护,BASIC仍然没有死。

也就是说,我认为今天为BASIC编写BASIC解释器(甚至可能使用LLVM或类似的编译器)是非常合理的。 如果你实现类似QBasic的东西,你将获得一个干净,简单易用和快速的语言。 您不必解决任何语言设计问题,最好的部分是人们已经知道您的语言。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM