当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

<b>手把手教你写脚本引擎(三)——简单的高级语言(1,基本原理)</b>[VC/C++编程]

赞助商链接



  本文“<b>手把手教你写脚本引擎(三)——简单的高级语言(1,基本原理)</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

这一篇文章开始报告若何实现一个高级语言的脚本引擎了.由于工程量较为宏大,因此将脱离几篇文章讲.学习做脚本还是要从简单的东西做起的.上一篇文章介绍的号令脚本为实现高级语言的原理做了铺垫.首先,高级语言和初级语言脚本的架构是一致的.其次,为了具有较大的优化的空间,我们将把高级语言转换成初级语言,并配合一个初级语言的脚本引擎来实现高级语言的脚本引擎.当然,习惯上,在这种情形下我们把初级语言叫『指令』.

在这个阶段,我们实现的这门语言是非惰性计算的、弱范例的、仅支持基本范例、数组和函数指针的语言.作为扩大,隐式范例转换和函数重载也将包含在这几篇文章的主题中.好了,开始介绍语法吧.

为了免除解析C语言函数指针声明的一堆麻烦问题,在这里我借用了pascal的语法.我们将构造出一门非常近似pascal的语言出来.

文件构造:

我们将实现的高级语言脚本是支持多文件的.脚本引擎老是需求外部函数的.为了便利的让宿主程序供应外部函数的声明,因此我们做成了多文件的脚本引擎.也便可以有近似C语言#include那模样的东西了.pascal有一个奇特的注释法则:利用大括号注释.

构造以下:

unit 单元名;

uses 单元名1,单元名2,……;

type
 新范例名称=范例声明;
  ……

var
 变量名组:范例;
 ……

interface
 公开的函数声明;

implementation
 公开和非公开的函数实现(非公开函数不需求声明)
end.

关于语言本身来说,type和uses最好应当属于interface和implementation的.不过我们为了便利,姑且就这么做吧.不然的话,既不能揭露更多的原理,又给自己添麻烦.

范例声明:

范例声明有普通范例、数组范例和函数指针.

普通范例有boolean、integer、real、char和string.

数组范例的声明办法是array of 范例.

函数指针的声明办法跟函数声明一致,唯一的辨别是函数指针不可呈现函数名.比方我们需求一个输入两个整数输出一个整数的函数指针,我们写:

type MyPointer=function(a,b:integer):integer;


  以上是“<b>手把手教你写脚本引擎(三)——简单的高级语言(1,基本原理)</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .