基于C语言的自定制脚本语言设计方法初探

2019-12-16 01:48苗金萍
电脑知识与技术 2019年29期
关键词:设计方法C语言

苗金萍

摘要:人们在日常的工作和生活当中,经常会遇到一些很复杂的问题需要人们重复的去解决,当遇到这类问题时,都可以借助编程来解决。随着技术的不断创新发展,当前的编程语言虽然有了非常好的发展,但是很多的问题还不能够解决,有些问题即使能够解决,所用到的编程语言也非常的烦琐。因此,需要在一些领域需要特定的语言来解决问题。下文将针对c语言的自定制脚本语言设计方法展开探析。

关键词:c语言;自定制脚本语言;设计方法

中图分类号:TP 文献标识码:A

文章编号:1009-3044(2019)29-0054-02

编程语言大致分为两种,分别为编译型语言和解释型语言。这两种编程语言当中,目前使用较多的是编译型语言,其中的C和C++是非常典型的两种编译型语言。利用这些语言能够将程序员所编译的语言以可执行文件的形式输出。C语言是程序员的入门语言,只有将基本的c语言掌握才能够编译出代码。将自制的编程语言称为Crowbar(杠杆)。C语言之所以得到了广泛的应用是因为这项语言在实际的运行过程中,具有运行速度快的有点,因此,需要程序员对C语言有一定的掌握。采用c语言进行编译,相对来说方便、简洁,并且c语言的应用能够让读者从模块的名字或者文件的名字中了解到各个模块或者文件的作用。随着社会的不断发展,对于编译性语言的需求也将会越来越多,同时也将会有更多的新型的自制编程语言出现,因此将自制编程语言进行掌握也是变得非常重要。

1Crowbar(杠杆)语言的基本介绍

1.1程序的结构

Crowbar(杠杆)在实际的语言编译过程中,可以在函数或者类的外侧等这些顶层结构中将代码进行书写。在借助C语言进行编程时,即使是写一句非常简单的C语句,也需要调用main()函数来书写执行语句,而在函数的外边只能够进行变量的定义。因此,要想写几句简单的脚本具有一定的难度,特别是对于初学者来说,C语言的这一特点,也增加了初学者学习的难度。在用Crowbar(杠杆)时,可以借助print将简单的语句进行显示,这种方式下,不需要再包裹函数或者类。函数在定义时,需要使用保留字function,书写方式如下:#将c和d相加的值显示,并且,作为返回值返回的函数

Functionhoge(c,d){

a=c+dtrtumal

程序中的任何一个位置都可以进行函数定义。当程序开始执行时,会首先从程序的顶层结构中的语句从上往下的开始运行,在运行的过程中,如果遇到函数定义,就会自动跳过函数定义的部分,直到函数被调用时,才会执行函数定义的部分。如果程序中没有编写出return语句,那么将会返回特殊常量null。

1.2数据类型

c语言编译中,使用的数据类型有四种,布尔型、整数型、实数型和字符串型。其中布尔型的数据类型可以是true或者是false;整数型数据实质上就是Crowbar(杠杆)中底层的C語言中的int型数据;实数型的数据也就是Crowbar(杠杆)中底层的c语言中的double型。如果整数型数据与实数型数据在一起进行运算,那么整数型数据将会直接被扩充为实数型;字符串型数据,在进行编译时,可以直接用“+”进行连接。除此之外,当字符串与数值用“+”连接时,如果字符串在左边,数值在右边,那么右侧的数值也将会转换成字符串型。

1.3变量

Crowbar(杠杆1是一种静态无类型的语言,同Perl和Ruby这些语言相同。当使用Crowbar(杠杆)进行语言编译时,可以直接省去变量声明的过程,以为在进行变量初值的赋予时,其中就包含了对变量的声明。变量在引用时必须是赋值的变量,如果引用了没有赋值的变量,那么将会出现错误。

对于变量的命名有一定的规则,规则基本上与C语言的变量命名是一样的。在命名时,开头必须是字母,第二个字符可以是数字也可以是字母,也可以使用下划线。Crowbar(杠杆1变量的命名中有些规则与Perl和Ruby等是有所不同的,不同的部分就是Crowbar(杠杆)变量的开头不需要书写$符号。函数中,存在着局部变量,而这个局部变量就是函数内部首次进行赋值的变量,这些变量就会变成函数内部的局部变量,并且局部变量的使用也只是在当前的函数当中。C语言的函数中还可开辟出一个块(Block),这个块中含有这更小作用域的局部变量,这一功能是C语言特有的,Crowbar(杠杆)所不具有的。当语句执行时,才进行变量的声明。下边给出一个具体的例子:

a只有为10时,b才能够被声明,print语句可以正常显示。如果a不是10,那么将会报出没有进行声明的警告。global语句的使用有一定的方式,如下:global变量名,变量名...;比如函数内用globala;当变量进行声明之后,当使用该函数时,就能够在函数的内部使用全局变量a。如果全局变量a不存在时,系统将会发出运行错误的警报。之所以采用global语句将变量进行声明之后再使用全局变量,有两点原因。其中第一点是因为一些函数在使用时强调高内聚性,这也就要求全局变量在引用时需要有一定的约束性,如果没有任何约束性就直接引用全局变量,那么就要求所编写的函数必须掌握全局变量。如果没有进行变量的声明,那么就会导致错误出现;第二个原因是因为全局变量在整个程序编写的过程中,使用的频率较低,因此,进行声明之后,就能够避免全局变量带来的不必要的麻烦,避免对程序的执行产生影响。

1.4语句与结构控制

Crowbarf杠杆)中的语句与结构控制语句与C语言是一样的,含有if、while等语句。但是Crowbar(杠杆)与c语言、Java语言等编译语言存在一些较大的差别,其中,Crowbar(杠杆)中不可以出现悬空else,因为不允许出现else语句,所以又引入了一种else if语句。当程序中输人break时,可以直接从最内层的循环中跳出。Continue能够跳过最内层循环中剩余的代码。而return可以从函数中退出,并在返回时将函数后面的值作为返回值。

1.5运算符

Crowbar(杠杆)中支持整数、实数字、字符串这些形式的常量可以作为操作数。不仅如此,Crowbar中的变量也可以作为操作数。将变量作为操作数能够实现与运算符和括号的结合,与运算符和括号进行结合之后能够组成更加复杂的表达式。

2Crowbar的主要模块和命名规则

2.1模块与命名规则

Crowbar(杠杆)中包含三个模块,分别为Crowbar主程序简称CRB、内存管理模块,简称为MEM,Debug模块,简称为DBG。这些模块能够完成一些特定的功能。每一个模块中都包含着多个c.文件。MEM和DBG这两个模块能够进行通用,两个模块的代码在Crowbar文件夹中的memory和debug的子文件夹中。

对C语言进行深入的分析和研究能够看出,C语言中不含有C++和C#的命名空间,同时,也不具有Java中的包机制,因此,需要制定相关的命名规则,来避免命名冲突问题的出现。本文中所介绍的语言设计中所采用的命名规则如下:

1)模块在进行命名时,开头的三个字符必须是英文字母的大写,例如:DVF。

2)进行类的命名时,也要使用三个大写字母开头,同时,两个英文单词之间的连接需要使用大写字母,例如DVF_Int。

3)在进行变量命名和函数命名时,要使用小写字母,如果出现两个英文单词的连接时,也要全部使用小写的英文字母。例如:alloc_expression。

4)进行宏命名时,所涉及的英文字母要全部使用大写,需要下划线进行连接的英文单词也要全部使用大写。例如:IDENTIFlER_TABLE_ALLOC_SIZE。如果宏定义中带有参数,那么就要遵循带函数的命名规则。例如:small(a,b).

5)模块中会有一些函数时向外公开的,对于这些函数的命名,要使用模块名+下划线作为前缀,其中模块名中的字母全部为大写。例如:CRB_ereate_interpreter().

61对于模块中不向外公开的函数需要用模块的名字+下划线的方式作为前缀,并全部采用小写的方式。例如:crb_al-loc_expression。

7)用st_fV為函数外部的静态变量名。

2.2内存管理模块

如果经常使用c语言进行编程,那么就会深刻地感受到c语言在进行编程时,很容易就会遇到电脑内存损坏的额情况,有时会出现忘记释放内存而导致泄露等问题。内存会经常出现一些BUG,让人很苦恼。特别是在Crowbar编程中,还会涉及一些字符串型的变量,这些变量在进行运算时可以借助“+”进行连接,这也就要求内存管理模块中必须设计一个垃圾回收机制。鉴于上述的这些理由,将内存管理模块的功能进行了设计。MEM为模块名,根据上文中对模块的命名规则,所有的公共函数都以MEM_为开头。

1)借助MEM_malloc()能够实现内存空间的配置,并且内存空间开始处的默认填充为oxCC。将OxCC作为开始处的默认填充,能够避免传统的内存空间出现遗漏初始化的现象。因为OxCC是一个没有意义的值,因此不会出现遗漏这一情况。

2)当,MEM__reallocO作为扩充内存空间时,默认的扩充值为OxCC。

3)OxCC会随着开辟的内存空间释放,这样一来内存空间释放所引起的BUG就能够被较早的发现。

4)如果内存空间采用malloe()开辟,那么就需要借助free()来进行释放。

2.3调试模块DBG

调试时会用到DBG模块,这一模块具有非常多的功能,如果是在Crowbar的程序中使用,那么只需要调用宏DBG_assert()以及DBG_panic()就可以。当DBG在输出时,可以借助DBG set debug_write fg()将输出目标进行更改,尽管输出目标得到了更改,同样stderr会保留一份相同的信息。如果输出目标不进行更改,stderr将会输出两行一样的信息。

3结束语

上文中借助C语言的语法特点以及程序编写方式自定制了Crowbar(杠杆)的基本语法。对Crowbar(杠杆)中的程序结构、数据类型、变量、语句与结构控制、运算符等多方面的内容都进行了设计,特别是给出了一套模块命名的规则以及内存管理的方法。采用Crowbar语言,能够为读者的使用带来非常大的方便。

猜你喜欢
设计方法C语言
基于Visual Studio Code的C语言程序设计实践教学探索
基于C语言的计算机软件编程
C语言程序设计课程教学与学科专业相结合的探索
高职高专院校C语言程序设计教学改革探索
浅析儿童家具模块化设计方法
浅析旅游景区公共设施的设计
公路桥梁结构桥梁抗疲劳设计方法应用
如何利用七年级新教材进行英语课堂阅读教学
论子函数在C语言数据格式输出中的应用
非计算机专业C语言教学探讨