Lua语言和“嵌入式”的含义

我在阅读关于“Lua”语言的文章时,对以下三行非常困惑:

  1. Lua主要是为嵌入式系统和客户端设计的。

  2. 那时Lua唯一的竞争者是TCL,它被设计成嵌入在应用程序中。

  3. Lua被设计成嵌入到其他应用程序中,

那么,“嵌入式”在第一行和第二、第三行中的含义有何区别。一个语言嵌入到其他应用程序中意味着什么?

点赞
用户2487023
用户2487023

根据维基百科

嵌入式系统是指在更大的机械或电气系统中具有专用功能的计算机系统,通常具有实时计算约束。

典型的例子包括汽车或咖啡机,计算机被嵌入到系统中以完成某些任务。

典型的约束是,由于成本和能源限制,嵌入式系统通常比典型的台式电脑功能弱。因此,用于嵌入式系统的语言应允许轻量级执行。这就是第一行中使用“embedding”的方式。

第二行和第三行提到了Lua的通常应用:

它的意思是用于扩展现有程序的功能。例如想想一个咖啡机,你可以指定自己的咖啡配方。然后咖啡机的实际控制程序例如用C编写,而你可以用Lua指定咖啡配方。这样,你用Lua编写的咖啡配方都被嵌入到C应用程序中。

在嵌入式系统中使用Lua

由于评论质疑在嵌入式系统中使用Lua的用处,下面摘自维基百科关于Lua应用的列表中的一些例子:

  • 佳能Hack开发套件(CHDK),一个为佳能相机设计的开源固件,使用Lua作为两种脚本语言之一。
  • Cisco Systems使用Lua在自适应安全设备(ASA)内实现动态访问策略,也使用Lua在Cisco统一通信管理器(CUCM)中实现SIP规范化。
  • 可以使用第三方软件在Creative Technology Zen X-Fi2便携媒体播放器中创建Lua定制应用程序。
  • Lego Mindstorms NXT和NXT 2.0可以使用Lua进行脚本编写。
  • 作为OpenWrt的默认Web界面的LuCI主要用Lua编写。
  • NodeMCU在硬件中使用Lua。NodeMCU是一个开源硬件平台,可以直接在ESP8266 Wi-Fi SoC上运行Lua。
  • Sierra Wireless AirLink ALEOS GSM / CDMA / LTE网关允许用户在Lua中编写应用程序。
  • Metaswitch Networks的Perimeta会话边界控制器使用Lua作为脚本语言以即时操作SDP数据。
  • 开源数字音频播放器固件Rockbox支持用Lua编写的插件。
  • 来自Logitech的Squeezebox音乐播放器在最近的型号(Controller,Radio和Touch)上支持用Lua编写的插件。
  • TI-Nspire计算器包含用Lua编写的应用程序,因为TI在OS3+中添加了专为计算器设计的API的Lua脚本支持。
2017-12-22 18:48:39
用户88888888
用户88888888
  1. 第一点指出,Lua适用于具有特定目的的设备,而不是多种设备。

2.和3.两点指出,例如,Lua可以在C++应用程序中实现以执行某个函数,而应用程序的某一部分可以使用Lua,但也可以主要使用C++。

2017-12-22 18:49:19
用户168986
用户168986

在这里使用“嵌入式”的术语并不是指SO中[嵌入式]标签,甚至不是传统上使用的“嵌入式系统”的意思。

维基百科页面中的链接是错误和误导性的 - 链接指向“嵌入式系统”,但引文指的是它是一种可嵌入语言 - 这不是相同的含义。

不要混淆这些事情 - 我已经开发了多年的嵌入式系统,从未见过Lua出现在其中。它当然可以用作嵌入式系统中的嵌入语言(例如为最终用户定制),但它并不是一个嵌入式系统语言。

2017-12-22 19:03:37