青山常在,绿水长流。
这三四天看了一下软考中涉及到的数据结构与算法、文法与自动机原理,这两部分的视频。
对于我们信息与计算科学专业的同学来说呢,这两部分知识基本上就是在复习知识。针对我们专业的特殊性,系里安排我们在大一的时候(那个对计算机懵懂的时候)就对树、图、链表、队列,这些数据结构与算法的重要知识点进行了第一次“普及扫盲”。
呵呵,毫不夸张的说,那个时候真的是完全按照文科学科的学法来处理这门课的考试的。这两天再接触到它的时候,还是颇为熟悉的,听着视频里老师悉心的讲解,自己在时不时的想到这些链表、树、图在程序中的应用、显示,又是如何的呢?
数据结构,程序中变量声明、应用,数据组成等都是所谓的数据结构。其实说程序中数据就是血与肉,三大结构倒也算是支撑骨架了。其重要性可想而知。
但是,就目前我所积攒的开发经验来说,将这些数据结构的众多知识点应用、映射到程序源码中,还是有点困难的,真能建立起抽象概念与具体事务之间的关联,那么真才是通透理解了数据结构预算法部分。
简要说过数据结构,剩下的便是文法与自动机了(或称编译原理)。这部分知识更可谓抽象难懂,基本上就是阐述图灵机最初状态的工作原理了。
文法、正规式、有(无)穷自动机、语法推导树、算符优先,这些都是软考中相关编译原理的重要考点。
说到这部分知识,确实抽象的很,但细算起来倒还比我们大二的时候学的少了好大一部分。搞不懂,弄不明白,现在这些接近骨灰级概念它们的存在价值还有多大,不过根基还是要打牢的,毕竟咱追求的是高发展。
过后,将这两部分的考点梗概的脑图整理一下,第一遍视频学习是要尽量避免“不怕不知道,就怕不知道”的第二个不知道。
分享到:
相关推荐
在编译原理中,我们首先会接触到的是词法分析,这是编译器处理源代码的第一步。它将源代码分解为一个个有意义的单元——记号(Token),这些记号通常包括关键字、标识符、常量和运算符等。词法分析器(Lexer)是通过...
为了使学生能够更好地理解编译器的工作原理和构建过程,我们需要一本能够结合理论与实践的教材——《编译原理实验指导》。该书不仅提供了一系列的实验内容,而且通过这些实验,学生能够亲手体验编译器的各个阶段,...
在这个实验中,你将接触到状态转换表的概念,它是描述有限自动机状态和转移的关键数据结构。此外,你还将学习如何使用编程语言(如C++、Python等)来实现这些算法,这对于理解编译器内部工作原理及其在实际问题中的...
同时,实验代码的编写将锻炼你的编程技巧,使你更熟练地运用数据结构和算法。 总结来说,这个“编译原理实验”旨在通过实践加深你对编译器内部运作的理解,尤其是词法分析和解析策略方面。完成这个实验后,你不仅会...
本实验主题“编译原理实验——编译器自动生成工具生成代码”主要关注如何利用特定的工具来自动化编译器的部分或全部构建过程。 首先,我们要理解C语言的语法。C语言是一种结构化编程语言,其语法严谨且强大,包括...
6. **运行时存储空间组织**:这部分关注程序运行时的数据结构,如堆栈、内存分配策略等,确保程序能有效地访问和操作数据。 7. **优化**:最后,编译器通过各种优化技术提高生成代码的质量和效率,例如删除冗余代码...
这个实验——"华南理工大学SE编译原理实验4 - 中间代码生成"——旨在帮助学生深入理解如何将高级语言转化为机器可理解的形式。中间代码是一种抽象的、与特定机器无关的表示形式,它介于源代码和目标代码之间,有助于...
**编译原理课程设计——CMM语言解释器** 在计算机科学领域,编译原理是研究如何将高级程序设计语言转换为机器可理解的低级语言的一门学科。本项目是基于CMM语言的一个解释器,它由Java语言实现,旨在帮助学生理解和...
在编译原理中,我们首先会接触到**词法分析**,这个阶段的任务是将源代码文本分解成一系列有意义的单元——词法单元或记号(tokens)。这些词法单元通常是关键字、标识符、常量和运算符等。接着是**语法分析**,它将...
在编译原理中,我们经常会接触到词法分析、语法分析以及语义分析等核心概念,这些是构建编译器的基础步骤。在这个课程设计中,我们将重点关注语法分析的一部分——LR0分析,这是一种自底向上的解析方法。以下是相关...
在大三的《编译原理》课程中,学生们通常会接触到一项重要的实践任务——设计并实现一个简单的编译器。本项目聚焦于PL0语言,这是一种为了教学目的而设计的极简主义编程语言,它可以帮助学生理解编译器的基本工作...
在这一阶段,编译器将词法分析生成的标记流转换成一个更加抽象的数据结构——抽象语法树(AST)。语法分析的核心在于应用上下文无关文法(CFG),通过构建AST,编译器能够清晰地表达出程序的语法结构,为后续的语义...
他们通常能深刻理解底层系统的工作原理,如操作系统内核、编译原理等。 #### 工具知识 (Tools Knowledge) - **2^n (Level 0):** 只熟悉一些主流集成开发环境(IDE),如Visual Studio .NET、Eclipse等。 - **n^2 ...
在学习《编译原理》时,会接触到如LR解析、LL解析、递归下降解析等不同的语法分析方法,以及如三地址码、虚拟机指令等不同的中间表示形式。此外,还有静态单赋值形式(Static Single Assignment, SSA)、寄存器分配...
同时,学生可能会接触到一些经典教材,如《现代编译原理——C语言描述》(Tiger Book)和《编译器:原理、技术与工具》(Dragon Book),以及相关的在线资源和课程。 在学习过程中,学生将参与实际的编译器项目,...
在编译原理中,我们首先会接触到的是词法分析(Lexical Analysis),它将源代码分解成一个个有意义的单元——词法单元或标记(Tokens)。这个过程通常由词法分析器(Lexer)完成,它识别并分类代码中的关键字、...
此外,他们还会接触到链式栈和顺序栈两种实现方式,了解各自的优缺点,并学习如何根据实际情况选择合适的数据结构。 总的来说,栈作为数据结构的一种,其简洁的操作模型和广泛的应用场景使其成为程序员必备的知识。...
数据结构是计算机科学中的核心课程,它探讨了如何有效地存储和组织数据,以便高效地进行各种操作,如查找、插入和删除。福大的数据结构课堂实验涵盖了这一领域的多个重要概念,通过C语言实现,提供了宝贵的实践机会...
在这一部分,学生将接触到数据结构领域的基本术语和定义,比如数据、数据对象、数据元素、数据结构和算法等。尤为重要的是,学生将学习到抽象数据类型(ADT)的概念,它能够帮助学生建立起对数据操作抽象的认识,...
在编译原理这门课程中,学生通常会接触到编译器的设计与实现,这是一个深入理解计算机语言处理的重要环节。本文将详细讨论“川大编译原理课程设计c减编译器”的相关知识点,并以C#作为开发语言进行阐述。 首先,...