zoukankan      html  css  js  c++  java
  • 《lua设计与实现》第1章 概述(Lua5.1.4)

    1.1 前世今生

        Lua于1993年诞生于巴西的Tecgraf实验室,Tecgraf主要专注于图形图像相关的工具研发。

        (1)可移植性:使用clean C编写的解释器。

        (2)良好的嵌入性:提供丰富的API供宿主与Lua脚本之间进行通信和交换数据。

        (3)非常小的尺寸:Lua5.1源码只有一万多行。

        (4)效率很高:为了提高性能,作者们自己开发词法分析器和解析器,代替Lex和Yacc等工具。

        用户使用C、C++等语言进行主要功能的开发,而扩展、配置等频繁动态变化的部分使用Lua语言来进行开发。在游戏服务器领域:

        (1)C、C++语言实现引擎层。

        (2)向引擎层注册一个Lua主逻辑脚本。Lua负责处理数据包,并根据数据的内容调用主逻辑脚本中的相关函数进行处理。

        可以看出,游戏的逻辑、玩法等频繁变动的内容由Lua完成。

    1.2 源码组织

        内部模块对外提供的接口、数据结构都以“lua模块名_”作为前缀。

        C API则用“lua_”作为前缀。

    1.3 Lua虚拟机工作流程

        (1)Lua代码->字节码:llex.c(词法分析)和lparser.c(语法分析)。lopcodes.h , lopcodes.c(定义字节码指令及相关API )

        (1)Lua虚拟机执行字节码:执行(lvm.c:luaV_execute),函数环境(ldo.c),垃圾回收(lgc.c),与宿主系统交互(lapi.c)

        后面的分析是基于Lua 5.1.4版本进行分析的。

  • 相关阅读:
    [转]读懂概率图模型:从基本概念和参数估计开始
    [转]ResNet讲解
    [转] GPT-2通俗详解
    Linux/IO基础
    Https:深入浅出HTTPS的交互过程
    Poll/Select/Epoll
    IO相关知识
    认真分析mmap:是什么 为什么 怎么用【转】
    页面滚动时导航渐变
    SSH Secure Shell Client的傻瓜式使用方法
  • 原文地址:https://www.cnblogs.com/yyqng/p/14288626.html
Copyright © 2011-2022 走看看