第1课 - 学习 Lua 的意义
第1课 - 学习 Lua 的意义
1.Lua 简介
(1) 1993年、巴西
(2) 小巧精致的脚本语言,大小只有 200K
(3) 用标准C语言写成,能够在所有的平台上编译运行
(4) 发明的目标是嵌入在C/C++中,为应用程序提供灵活的扩展和定制功能
(5) 不适合用于开发独立的应用程序
2.Lua 产生的原因
C/C++ 工程中有大量的业务逻辑,而业务逻辑经常发生改变,这就需要更改源代码。由于C/C++ 是编译型语言,源码一旦改变就需要重新编译整个工程,在面对代码量很大的工程时需要耗费大量的时间。因此产生了一种想法:将经常改动的业务逻辑层用无需编译的脚本语言编写,将解释器以代码级别集成到 C/C++ 工程中,这样在发布软件时只需提供一份脚本即可,无需编译整个工程。
3.Lua 的应用领域
—— 嵌入式开发 & 游戏开发
嵌入式开发
(1) 嵌入式开发常面临资源受限的情况,而 Lua 解释器只有 200K
- 游戏开发
(1) 游戏的业务逻辑经常发生改变
(2) 游戏的核心库对硬件的要求很高,Lua有很高的执行效率
(3) 游戏开发的首选语言是 C/C++
(4) Lua易于扩展,由项目自定义核心库,如网络通信、图形界面等
4.Lua 和 Python 的对比
5.Lua 工程应用的模式
6.典型嵌入式系统架构

第1课 - 学习 Lua 的意义的更多相关文章
- 第1课 - 学习Lua的意义
学习Lua的意义 1.Lua简介 (1) 1993年.巴西 (2) 小巧精致的脚本语言,大小只有200K (3) 用标准C语言写成,能够在所有的平台上编译运行 (4) 发明的目 ...
- 第1课 学习 C++ 的意义
1. 回顾历史 (1)UNIX操作系统诞生之初是直接用汇编语言写成的.随着UNIX的发展,汇编语言的开发效率成为一个瓶劲. (2)1971年,Ken Thompson和Denis Ritchie对B ...
- 第1课 学习C++的意义
C++是C语言的加强,它们之间并不是对立的关系. 学习C++的优势: 现代软件产品的架构图: 操作系统抽象层:可有可无,但是作为一个移植性好的软件一定需要这一层.这一层的作用就是把操作系统提供的接口做 ...
- JavaEE精英进阶课学习笔记《博学谷》
JavaEE精英进阶课学习笔记<博学谷> 第1章 亿可控系统分析与设计 学习目标 了解物联网应用领域及发展现状 能够说出亿可控的核心功能 能够画出亿可控的系统架构图 能够完成亿可控环境的准 ...
- Python第十课学习
Python第十课学习 www.cnblogs.com/yuanchenqi/articles/5828233.html 函数: 1 减少代码的重复 2 更易扩展,弹性更强:便于日后文件功能的修改 3 ...
- Python第九课学习
Python第九课学习 数据结构: 深浅拷贝 集合set 函数: 概念 创建 参数 return 定义域 www.cnblogs.com/yuanchenqi/articles/5782764.htm ...
- Python第八课学习
Python第八课学习 www.cnblogs.com/resn/p/5800922.html 1 Ubuntu学习 根 / /: 所有目录都在 /boot : boot配置文件,内核和其他 linu ...
- 学习C++的意义
1,常见的观点: 1,并不是每个应届生都有机会写操作系统和驱动程序: 2,嵌入式系统也是软家系统,只不过是软件在出厂的时候已经被烧写到硬件中了,用户没有办法修改软件而已,因此嵌入式系统也是软件系统,C ...
- 第2课 - 搭建Lua开发环境
第2课 - 搭建Lua开发环境 1. Lua 的优点 (1)Lua 使用标准的 ANSI C 进行开发,可以无缝集成到宿主程序,且几乎支持所有平台. (2)Lua 是开源且免费的软件,以源码的方式直接 ...
随机推荐
- 写给程序员的机器学习入门 (八 补充) - 使用 GPU 训练模型
在之前的文章中我训练模型都是使用的 CPU,因为家中黄脸婆不允许我浪费钱买电脑.终于的,附近一个废品回收站的朋友转让给我一台破烂旧电脑,所以我现在可以体验使用 GPU 训练模型了
- 手动向Maven本地仓库添加ORACLE ojdbc6jar包
第一步: 把你的oracle中的ojdbc6.jar复制放到D盘首目录 这是我的D:\oracle\product\11.2.0\dbhome_1\jdbc\ D:ojdbc6.jar 但是Maven ...
- ElasticSearch 7.8.1集群搭建
通往集群的大门 集群由什么用? 高可用 高可用(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间.如果系统每运行100个时间 ...
- 清晰详细、可测量、可达到、目标导向、有时间限定,SMART目标定制原则
设定目标的时候需要考虑的问题,可以对已经设定的目标进行完善 S 目标是清晰的,明确的 M 目标可以衡量的,可以用来评估的 A 目标是可以达到的,但是达到的过程有难度 R 目标导向,设定的目标对大目标具 ...
- 史上最全且最简洁易懂的Activity启动流程解析
Activity的启动流程是一个资深Android工程师必须掌握的内容,也是高职级面试中的高频面试知识点,无论是从事应用层开发,还是Framework开发,其重要性都无需我多言.而要真正理解它,就不可 ...
- Spark QuantileDiscretizer 分位数离散器
1.概念 接收具有连续特征的列,并输出具有合并分类特征的列.按分位数,对给出的数据列进行离散化分箱处理. 和Bucketizer(分箱处理)一样也是:将连续数值特征转换为离散类别特征.实际上Class ...
- 用mysqldump备份数据库
格式:/usr/local/mysql/bin/mysqldump -hip -Pport -uuser -ppasswd --set-gtid-purged=off --database aa & ...
- SEGGER studio问题
刚开始学习用SEGGER studio编译调试nordic 52840程序,在此记录遇到的问题. 1. Additional Load File[0]:"E:\nordic/nRF5_SD ...
- 第2章 Hive安装
第2章 Hive安装 2.1 Hive安装地址 1.Hive官网地址 http://hive.apache.org/ 2.文档查看地址 https://cwiki.apache.org/conflue ...
- 5 个 Git 工作流,改善你的开发流程
原文地址:5 Git workflows you can use to deliver better code and improve your development process 原文作者:Vi ...