欢迎来到天天文库
浏览记录
ID:52472842
大小:261.03 KB
页数:4页
时间:2020-03-28
《CASL语言可视化运行平台的设计与实现.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、I.引言随着可视化技术的不断发展,目前的计算机开发的程序基本采用可视化的开发环境,使程序员从枯燥乏味的单一编程环境中解脱出来,但是对于程序的具体执行过程,现在却很少有直观反映算法与数据结构的动态关系和演变过程,且调试程序效率低下。目前大多数使用的可视集成开发环境,例如现在比较常用的开发工具VisualC++、Delphi、VisualBasic等,提供给编程者的主要是编程界面的可视化,当然这在编辑环境上是一个比较大的飞跃,但是程序在运行过程中数据对象的动态变化并不能直观地观察到,程序编写者也很难从一大堆枯燥乏味的数字中找出其内在规律和变化趋势,更不能实时地掌握程序运行过程中各种数据的动态交
2、换及处理,这给程序的学习和调试带来了一定的不便,大部分的编程时间耗费在学习程序和程序调试工作上,归结起来以前的编辑及运行环境存在下面的一些不足:(1)学爿计算机语言语法困难:程序初学者需要一步一步理解程序代码的流程以及掌握抽象的算法,从书本或黑板上来学习这些知识将是一件特别费劲的事情;(2)程序运行的抽象性而难以理解:学习者理解计算机是如何解释及执行指令感到十分困难,它仅在一个更抽象的层次上来解释算法,而不是通过直观的可视化的手段来帮助理解:(3)不能理解寄存器及内存之间的数据交换,也不能可视直观地理解程序的内存分配情况。2.可视化技术近年来,可视化的程序运行研究越来越受到计算机科学界的重
3、视,现在做得较好的也仅是采用简单可视化的界面进行设计,并没有用动态图形的方式来表现程序在运行过程中数据的流向、寄存器与内存数据的交换,不能给人们真正直观的理解各种语言的运行全过程。为了解决程序的可视运行和利用可视表达手段及图形技术对程序和数据对象进行可视化,动态演示计算过程中程序和数据的瞬间状态,如虚拟机执行内部信息、抽象数据结构信息以及抽象的CASL汇编语言为例),使用图形技术把指令在CPU内部的运行过程和内存的变化动态地演示出来,使计算机内部的工作变得更加形象化和直观化。3.CASL语言的可视化平台的设计CASL是一种抽象汇编语言,CASL语言仅有23种符号指令,4种伪指令和3种宏指令
4、。指令虽少却包含了现代微处理机体系结构中的典型指令,因此不但可作为考试之用,也可用于汇编语言的教学之中。但由于缺乏实际的微处理机芯片的支持,在学习和研究时,程序员只能书面编写程序,给进一步分析与研究程序带来困难。本文提出的解决办法是采用仿真技术建立计算机环境,开发和调试程序。本文设计的CASL编译系统均是在面向对象的编辑环境中实现,是集词法分析、语法分析、语义处理、优化和目标代码生成等操作于一体,提高了编译系统的可扩展性、可复用性和可维护性。通过对复杂的可视化图片语法进行分析,对本系统所采用的可视表达和可视化运行技术进行分析并实现。3.1可视表达技术可视表达主要包括:内部信息、内存地址、运
5、算器—啦u等,它们采用了可视化的技术,即用图形的方式来表现内部信息和内存地址信息以及运算器ALU,使系统具有可视化的界面。图1是CASL可视虚拟机的结构建模,该虚拟机有5个通用寄存器(GR0--GR4),数据在内存与寄存器之间的交换或运算经过运算器ALu进行工作,数据的流入与流出也是经过ALU进行交换。内存区■膏存■区■图lCASL可视虚拟机的结构建模作者简介:陈雪梅,女,广东梅州人,硕士,讲师,研究方向:计算机软件、计算机图形学及数据挖掘等。基金项目:广州市教育局的重点资助教学研究项目:基于可视化虚拟运行环境的计算机语言教学平台的研究与设计,2009-2。一33—容相加LEAGRl,l,
6、GRl;GRI地址加1,再存入GRl中CPAGRI,C100;算术比较JMICYCLE;小于则转移到标号CYCLE去运行JZECYCLE;等于则转移到标号CYCLE去运行STGR0,SUM;GR0中的数据存入有效地址SUM中EXIT:退出XDSl;为x地址分配1个内存单元SUMDSl;为SUM地址分配1个内存单元C100DC100;在C100的地址存储常数END;程序结束图2中对寄存器及计数器都进行了初始化:GR0.GR3寄存器清为0,计数器初始化为.1(表示程序未运行或运行已结束),GR4寄存器赋了初始值100(表示堆栈的栈项),FR赋了初始值Ol。鳓6R1GR2GR3G嗣FRPC图2寄
7、存器及计数器初始化3.1.2内存地址及指令的图形化表达方式对于DC和DS指令根据所带操作数的特点进行实际分配图形化的内存单元,并把DS所分配的空间设置为0,把DC所分配的内存单元存入实际的字符值,例如:(内存地址)=值。对于指令而言,每一条指令占两个内存单元,并根据指令的字符长度动态分配其图形化的存储单元,例如:(起始内存地址)=指令。图3是内存地址及指令的图形化初始表达形式。m:LE^GR0,Ol脚=LEAGRl,1J
此文档下载收益归作者所有