美国犹他大学Matthew Flatt教授应邀开展学术讲座

  • 刘嫒儒
  • 创建时间: 2023-04-28
  • 2176

  4月27日下午,中国科学院大学计算机科学与技术学院和国际学院特邀美国犹他大学Matthew Flatt教授为同学们带来一场题为如何用宏机制来实现面向领域的计算机程序语言(Building Languages with Macros in Racket and Rhombus)的学术讲座。Matthew Flatt是犹他大学计算机科学专业教授,Racket编程语言主导开发者之一,同时也是《如何设计程序》的合著者。国际学院副院长胡中波、计算机学院党委副书记(主持工作)李剑和40余名同学共同聆听了这场精彩的讲座。讲座由计算机学院罗铁坚教授主持。

罗铁坚教授(左一)介绍Flatt教授(右一)

  Flatt教授向在场师生介绍了Racket语言的基本概念、用途和应用以及未来发展趋势。每讲到难点和重点,罗铁坚教授都会细心地为同学们翻译讲解、详细阐述技术细节,并在涉及到关键概念和核心思想的时候耐心引导同学们提问,帮助同学们更好的理解和融入这场具有一定难度的全英文讲座。

  Flatt教授首先用一段自制的小动画比较了不同编程语言的特点,进而引出对Racket编程语言的介绍。为了帮助同学们更好地理解,他利用Dr.Racket IDE软件为同学们进行演示,将抽象的概念具体为代码的执行过程。



Flatt教授做讲座

  讲座上,Flatt教授介绍了Racket编程语言的三大特点:宏系统,并行编程,库和工具。Racket语言拥有丰富的库和工具,包括图形用户界面库、网络库、数据库库等,使程序员能够轻松地实现各种功能。他分享了该语言在教育、科学研究、数据分析和人工智能等领域的实际案例和应用情况以及在现代软件开发和数据分析中的重要性和价值。


讲座现场

  最后,Flatt教授探讨了Rhombus编程语言未来的发展趋势(一种基于Racket的新语言)。Rhombus提供了一种实用且富有表现力的宏技术的新颖综合。除了放弃括号之外,与Racket最显著的不同之处在于,它为上下文特定的子语言使用了多个绑定空间。

  在罗铁坚教授的鼓励和引导下,同学们提出了很多有价值、有意义的问题,例如Racket编程语言如何做到性能与效率平衡?Racket编程语言是否与目前火爆的ChatGPT模型存在某些关联?Flatt教授肯定了同学们提出的问题价值并耐心解答,现场气氛十分热烈。


Flatt教授解答学生问题

  此次讲座吸引了许多计算机科学和软件工程相关专业的同学参加,他们纷纷表示,通过Flatt教授的介绍和讲解更深入地了解了Racket编程语言和其应用,受益匪浅。

  计算机学院研究生在讲座期间与Flatt教授积极互动,讲座结束后与罗铁坚教授积极探讨。杜奕明说:“如何让计算机更好地理解人类想法?这个问题从计算机诞生之初直到今天都一直存在。Faltt教授的讲座想要表达的即是尽可能设计出的编程语言的表达方式接近领域问题,避免把求解方式转译到通用编程语言时,失去领域知识的语义。。他们研究出了一种比C语言更灵活和表达能力更强的宏机制,使用这种机制可以更容易设计实现出面向领域的语言(如YACC,LEX,正则表达式等。如果能为非计算机专业的人员生成领域特定的语言,他们就能方便地将自己熟识的语言把想要做的工作传达给计算机。一直以来,人类让计算机帮我们解决问题前都需要我们学习机器能理解的程序设计语言。Flatt教授为我们提供了一种新的思路,他的工作也值得我们的期待和进一步探索研究。”

  周逸飞表示:“这个讲座为我们展示了如何使用一种新型的宏机制来实现描述领域语言,以及如何使用Racket这样的宏扩展语言来帮助我们更容易地编写代码。通过这些技术,我们可以更加高效地进行程序设计和开发,并创造出更加高效和精确的代码。”

  丁强说:“Flatt教授给我们分享主题很有意思。他分享的Racket语言尝试用宏定义将各种编程语言统一起来,从而降低针对特定领域编程的学习门槛。Flatt教授在讲座中对这一语言的比喻非常形象。使用一种程序语言编程就好比对一个许愿井许下一个愿望,比方说想要城堡、钻石;而使用Racket语言则是对一个许愿井许下一个特殊的愿望:想要一个满是许愿井的地方。我相信Racket语言的这种通用性能让人们更简单方便地掌握编程。”(文/陈东杰、曾冕 图/刘嫒儒)