语言是人与人之间传递信息的媒体和手段,在计算机领域,大都应用高级程序设计语言与计算机进行通讯,但是,计算机是不能识别高级程序设计语言编写的程序,编译程序就起了一个从高级程序设计语言到机器语言的桥梁作用。编译原理课程讲授编译程序设计与实现中所涉及的主要理论和技术。
它被认为是程序员的三大“浪漫”之首。在编译领域里的经典教材《龙书》中第一章第一句提到:编译器的原理和技术具有十分普遍的意义,以至于在每个计算机科学家的研究生涯中,这些原理和技术都会反复用到。“编译原理”带领大家在系统的级别上重新认识算法和程序——如何对单词和句子进行形式化描述,基于这些形式化的描述,怎样设计出自动化处理的过程,最终实现“自动计算”。
计算学科问题求解的基本思路是“问题、形式化描述、计算机化”,以抽象、理论、设计为其学科形态。编译原理涉及的是一个比较适当的抽象层面上的数据变换,既有明确的、便于抽象的问题,又有较成熟的理论,而且在限定规模下又容易实现(设计),所以“编译原理”是计算机专业本科生的重要专业技术基础课程,属于教学计划中四大系列之软件技术系列。 除了知识外,该课程内容还含有基本问题求解的典型思想、技术和方法,所以该课程对于培养学生的计算思维、程序设计与实现、算法设计与分析、计算机系统的认知、开发和利用等 4 大学科基本能力非常重要。学生是在程序设计、数据结构与算法等课程中受到一定的锻炼后,从系统的级别上对程序、算法的认识进行再提高,通过该课程进一步提升计算机问题求解的水平,增强系统能力,体验实现自动计算的乐趣。这些方法和思想包括掌握程序变换基本概念、问题描述和处理方法(自顶向下、自底向上、逐步求精、递归求解,目标驱动,问题分析、问题的抽象与形式化描述,算法设计与实现,系统构建、模块化)。
我们将以简洁明了的方式为大家呈现编译过程的实现技巧和方法,相信大家跟随我们的课程,能够了解编译的原理,获取更多 “自动计算”的心得,提升系统和程序实现能力。欢迎大家加入《编译原理》这门课程,一起踏上探寻程序本质的旅程,感受它为我们带来的无穷乐趣吧。