徽标
联盟百科
通讯
下载应用,请到 Google Play
新! 在您的Android™设备上下载联盟百科!
下载
比浏览器更快的访问!
 

語法分析器

指数 語法分析器

在计算机科学和语言学中,语法分析(syntactic analysis,也叫 parsing)是根据某种给定的形式文法对由单词序列(如英语单词序列)构成的输入文本进行分析并确定其语法结构的一种过程。 语法分析器(parser)通常是作为编译器或解释器的组件出现的,它的作用是进行语法检查、并构建由输入的单词组成的数据结构(一般是语法分析树、抽象语法树等层次化的数据结构)。语法分析器通常使用一个独立的词法分析器从输入字符流中分离出一个个的“单词”,并将单词流作为其输入。实际开发中,语法分析器可以手工编写,也可以使用工具(半)自动生成。.

6 关系: 形式文法編譯器直譯器计算机科学词法分析语言学

形式文法

在计算机科学中,形式语言是:某个字母表上,一些有限长字串的集合,而形式文法是描述这个集合的一种方法。形式文法之所以这样命名,是因为它与人类自然语言中的文法相似的缘故。 形式文法描述形式语言的基本想法是,从一个特殊的初始符号出发,不断的应用一些产生式规则,从而生成出一个字串的集合。产生式规则指定了某些符号组合如何被另外一些符号组合替换。举例来说,假设字母表只包含'a'和'b'两个字符,初始符号是'S',我们应用下述规则: 于是我们可以通过把"S"重写为"aSb"(规则1),我们还可以继续应用这条规则把"aSb"重写为"aaSbb"。这个重写的过程不断重复,直到结果中只包含字母表中的字母为止。在例子中,我们可以得到S -> aSb -> aaSbb -> aababb这样的结果。由文法刻画的语言,包含了所有可以这样产生的字串,比如ba, abab, aababb, aaababbb等等。.

新!!: 語法分析器和形式文法 · 查看更多 »

編譯器

编译器(compiler),是一種電腦程式,它會將用某種程式語言寫成的原始碼(原始語言),轉換成另一種程式語言(目標語言)。 它主要的目的是將便于人编写、阅读、维护的高级计算机语言所寫作的原始碼程式,翻译为计算机能解读、运行的低阶机器语言的程序,也就是執行檔。编译器将原始程序(source program)作为输入,翻译产生使用目标语言(target language)的等价程序。源代码一般为高阶语言(High-level language),如Pascal、C、C++、C# 、Java等,而目标语言则是汇编语言或目标机器的目标代码(Object code),有时也称作机器代码(Machine code)。 一个现代编译器的主要工作流程如下: 源代码(source code)→ 预处理器(preprocessor)→ 编译器(compiler)→ 汇编程序(assembler)→ 目标代码(object code)→ 链接器(Linker)→ 執行檔(executables), 最後打包好的檔案就可以給電腦去判讀執行了。.

新!!: 語法分析器和編譯器 · 查看更多 »

直譯器

譯器(interpreter),是一種電腦程式,能夠把高階程式語言一行一行直接轉譯執行。直譯器像是一位「中間人」,每次執行程式時都要先轉成另一種語言再作執行,因此直譯器的程式運行速度比較緩慢。它不會一次把整個程式轉譯出來,而是每轉譯一行程式敘述就立刻執行,然後再轉譯下一行,再執行,如此不停地進行下去。 直譯器的好處是它消除了編譯整個程式的負擔,程式可以拆分成多個部分來模組化,但這會讓執行時的效率打了折扣。相對地,編譯器已一次將所有原程式碼翻譯成另一種語言,如機械碼,執行時便無需再依賴編譯器或額外的程式,故而其運行速度比較快。.

新!!: 語法分析器和直譯器 · 查看更多 »

计算机科学

计算机科学用于解决信息与计算的理论基础,以及实现和应用它们的实用技术。 计算机科学(computer science,有时缩写为CS)是系统性研究信息与计算的理论基础以及它们在计算机系统中如何与应用的实用技术的学科。 它通常被形容为对那些创造、描述以及转换信息的算法处理的系统研究。计算机科学包含很多分支领域;有些强调特定结果的计算,比如计算机图形学;而有些是探討计算问题的性质,比如计算复杂性理论;还有一些领域專注于怎样实现计算,比如程式語言理論是研究描述计算的方法,而程式设计是应用特定的程式語言解决特定的计算问题,人机交互则是專注于怎样使计算机和计算变得有用、好用,以及随时随地为人所用。 有时公众会误以为计算机科学就是解决计算机问题的事业(比如信息技术),或者只是与使用计算机的经验有关,如玩游戏、上网或者文字处理。其实计算机科学所关注的,不仅仅是去理解实现类似游戏、浏览器这些软件的程序的性质,更要通过现有的知识创造新的程序或者改进已有的程序。 尽管计算机科学(computer science)的名字里包含计算机这几个字,但实际上计算机科学相当数量的领域都不涉及计算机本身的研究。因此,一些新的名字被提议出来。某些重点大学的院系倾向于术语计算科学(computing science),以精确强调两者之间的不同。丹麦科学家Peter Naur建议使用术语"datalogy",以反映这一事实,即科学学科是围绕着数据和数据处理,而不一定要涉及计算机。第一个使用这个术语的科学机构是哥本哈根大学Datalogy学院,该学院成立于1969年,Peter Naur便是第一任教授。这个术语主要被用于北欧国家。同时,在计算技术发展初期,《ACM通讯》建议了一些针对计算领域从业人员的术语:turingineer,turologist,flow-charts-man,applied meta-mathematician及applied epistemologist。 三个月后在同样的期刊上,comptologist被提出,第二年又变成了hypologist。 术语computics也曾经被提议过。在欧洲大陆,起源于信息(information)和数学或者自动(automatic)的名字比起源于计算机或者计算(computation)更常见,如informatique(法语),Informatik(德语),informatika(斯拉夫语族)。 著名计算机科学家Edsger Dijkstra曾经指出:“计算机科学并不只是关于计算机,就像天文学并不只是关于望远镜一样。”("Computer science is no more about computers than astronomy is about telescopes.")设计、部署计算机和计算机系统通常被认为是非计算机科学学科的领域。例如,研究计算机硬件被看作是计算机工程的一部分,而对于商业计算机系统的研究和部署被称为信息技术或者信息系统。然而,现如今也越来越多地融合了各类计算机相关学科的思想。计算机科学研究也经常与其它学科交叉,比如心理学,认知科学,语言学,数学,物理学,统计学和经济学。 计算机科学被认为比其它科学学科与数学的联系更加密切,一些观察者说计算就是一门数学科学。 早期计算机科学受数学研究成果的影响很大,如Kurt Gödel和Alan Turing,这两个领域在某些学科,例如数理逻辑、范畴论、域理论和代数,也不断有有益的思想交流。.

新!!: 語法分析器和计算机科学 · 查看更多 »

词法分析

词法分析(lexical analysis)是计算机科学中将字符序列转换为标记(token)序列的过程。进行词法分析的程序或者函数叫作词法分析器(lexical analyzer,简称lexer),也叫扫描器(scanner)。词法分析器一般以函数的形式存在,供语法分析器调用。.

新!!: 語法分析器和词法分析 · 查看更多 »

语言学

语言学(linguistics)是一门关于人类语言的科学研究。语言学包含了几种分支领域。在语言结构(语法)研究与意义(语义与语用)研究之间存在一个重要的主题划分。语法中包含了词法(单词的形成与组成),句法(决定单词如何组成短语或句子的规则)以及语音(声音系统与抽象声音单元的研究)。语音学是语言学的一个相关分支,它涉及到语音(phone)与非语音声音的实际属性,以及它们是如何发出与被接收到的。 與学习語言不同,语言学是研究所有人类语文發展有關的一門學術科目(通常只有根据语言,非文字)。传统上,语言学是文化人类学的分支学科,但是现在语言学越来越独立了。语言学研究句法和词语等语言的描述,也研究语言的发展史。 语言学其他的附属科目包括以下:.

新!!: 語法分析器和语言学 · 查看更多 »

重定向到这里:

语法分析器

传出传入
嘿!我们在Facebook上吧! »