编译原理中的语法和文法是不一样的,但却融会贯通。
在计算机科学中,文法是编译原理的基础,是描述一门程序设计语言和实现其编译器的方法。
文法分成四种类型,即0型、1型、2型和3型。这几类文法的差别在于对产生式施加不同的限制。
形式语言,这种理论对计算机科学有着深刻的影响,特别是对程序设计语言的设计、编译方法和计算复杂性等方面更有重大的作用。
多数程序设计语言的单词的语法都能用正规文法或3型文法(3型文法G=(VN,VT,P,S)的P中的规则有两种形式:一种是前面定义的形式,即:A→aB或A→a其中A,B∈VN ,a∈VT,另一种形式是:A→Ba或A→a,前者称为右线性文法,后者称为左线性文法。正规文法所描述的是VT上的正规集)来描述。
四个文法类的定义是逐渐增加限制的,因此每一种正规文法都是上下文无关的,每一种上下文无关文法都是上下文有关的,而每一种上下文有关文法都是0型文法。称0型文法产生的语言为0型语言。上下文有关文法、上下文无关文法和正规文法产生的语言分别称为上下文有关语言、上下文无关语言和正规语言。
程序设计的步骤
分析问题:对于接受的任务要进行认真的分析,研究所给定的条件,分析最后应达到的目标,找出解决问题的规律,选择解题的方法,完成实际问题。
设计算法:设计出解题的方法和具体步骤。
编写程序:将算法翻译成计算机程序设计语言,对源程序进行编辑、编译和链接。
运行程序,分析结果:运行可执行程序,得到运行结果。能得到运行结果并不意味着程序正确,要对结果进行分析,看它是否合理。不合理要对程序进行调试,即通过上机发现和排除程序中的故障的过程。
编写程序文档:许多程序是提供给别人使用的,如同正式的产品应当提供产品说明书一样,正式提供给用户使用的程序,必须向用户提供程序说明书。
内容应包括:程序名称、程序功能、运行环境、程序的装入和启动、需要输入的数据,以及使用注意事项等。
面向过程的程序设计的原则
原则:
自顶向下:指从问题的全局下手,把一个复杂的任务分解成许多易于控制和处理的子任务,子任务还可能做进一步分解,如此重复,直到每个子任务都容易解决为止。
逐步求精
模块化:指解决一个复杂问题时自顶向下逐层把软件系统划分成个数较小的、相对独立,但又相互关联的模块的过程。
编译程序指将某一种程序设计语言写的程序翻译成等价的另一种语言的程序的程序, 称之为编译程序
编译程序也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。编译程序属于采用生成性实现途径实现的翻译程序。
它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。
编译程序的实现算法较为复杂,这是因为它所翻译的语句与目标语言的指令不是一一对应关系,而是一多对应关系,同时也因为它要处理递归调用、动态存储分配、多种数据类型,以及语句间的紧密依赖关系。
由于高级程序设计语言书写的程序具有易读、易移植和表达能力强等特点,编译程序广泛地用于翻译规模较大、复杂性较高、且需要高效运行的高级语言书写的源程序。
扩展资料:
编译流程分为了四个步骤:
1预处理,生成预编译文件(文件)
2编译,生成汇编代码(s文件)
3汇编,生成目标文件(o文件)
4链接,生成可执行文件
参考资料:
c语言编译程序属于系统软件。
编译程序(Compiler,compilingprogram)也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。
这里的编译程序是一种动作,是根据编译原理技术,由高级程序设计语言编译器翻译成机器语言二进制代码行为,因此它是系统软件。
扩展资料:
应用软件:是和系统软件相对应的,是用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的应用程序的集合,分为应用软件包和用户程序。应用软件包是利用计算机解决某类问版题而设计的程序的集合,供多用户使用。比如浏览器、权百度云管家等等都是应用软件。
工具软件:是指在使用电脑进行工作和学习时经常使用的软件,比如电脑管家等杀毒软件,一般工具软件都属于应用软件。
以上就是关于编译原理中的语法和文法一样吗全部的内容,包括:编译原理中的语法和文法一样吗、程序设计中应该遵循的开发方法、什么是编译程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)