「基础软件理论与实践公开课」课程信息(持续更新)
课程:
Introduction to compilers and interpreters
基础软件理论与实践公开课
张宏波(关注张老师🫱:https://blog.csdn.net/bobzhang1988 )
预期管理
这门课的主要目的还是为了帮助国内的同学培养基础软件相关的兴趣,偏向于实践,但是为了学生将来继续深造,会讲解下背后的理论以及形式化相关的东西。难度会比哈佛,耶鲁,宾大的本科编译器课程略难一点,但不是研究生的研讨课那种形式。
课程完整信息
课程信息官方地址:https://bobzhang.github.io/courses/
程序语言理论是计算机科学中历史最悠久的学科之一,50多年来,ACM图灵奖获奖者中大概1/3从事程序语言与编译系统的相关研究。程序语言与编译器的设计与实现体现了计算机科学中的最核心的思想和技术,并且和业界新兴的技术领域,如人工智能加速芯片、云计算、物联网都有非常重要的联系。
本课程主要讲授程序语言设计与实现中的理论和实践,相较传统编译原理课程花费比较多的篇幅在词法分析、语法分析、语法树构造等章节,这门课程会直接从 Lambda演算 切入介绍编程语言最核心的部分,但和国外的同类课程不同的是,更多的注重把理论和实践相结合。
课程内容包括Lambda演算、parital evaluation、 debruin index、 模式匹配、 类型检查、类型推导、虚拟机技术等。课程的后半段会根据需要邀请其他嘉宾来进行一些分享。
该课程主要面向对基础软件感兴趣的学生、及从事软件研发的业界同行等,该课程尽量不设前置条件,希望能培养更多学生对基础软件相关领域的兴趣,后续可能会推出一些更专业的课程。
授课的示例代码使用ReScript语言,起源于授课老师的个人作品,也是迄今国内第一个在国际范围内有一定影响力的通用编程语言。
授课的内容大部分属于作者原创,未经授权,不得转载。
课件(🔥火热更新中)
| Date | Topic | Slides | Example code | Recommend Reading |
|---|---|---|---|---|
| Week 0 | Introduction to language design and implementation | * Lec0.pdf * Lec0.pdf-站内镜像 * Lec0-中文版, by @guenchi * Lec0-中文版-站内镜像 | 代码:lec0-code.zip | * Rescript配置文档 * 课程视频(01) * 课程视频(02) * 课程适配(03) * 预习答疑 * 第一节作业提交 |
| Week 1 | ReScript crash course | * Lec1.pdf * Lec1.pdf-站内镜像 | 入门教程 | ReScript配置文档 * 课程视频(01) * 第二节作业提交 |
| Week 2 | λ calculus | * Lec2.pdf * Lec2.pdf-站内镜像 | 代码:lec2-code.zip | * 课程适配(01) * 课程视频(02) * 课程视频(03) * 课程视频(04) * 第三节作业提交 |
| Week 3 | Names,binders, De Bruijn index | * lec3.pdf | 代码:lec3-code.zip | * 课程视频(01) * 课程视频(02) * 第四节作业提交 |
| Week 4 | Closure calculus | TBD | TBD | |
| Week 5 | Pattern matching | TBD | TBD | |
| Week 6 | Stack machine and compilation | TBD | TBD | |
| Week 7 | WebAssembly | TBD | TBD | |
| Week 8 | Garbage collection and memory management | TBD | TBD | |
| Week 9 | Type checking | TBD | TBD | |
| Week 10 | Unification, type inference, bidirectional type checking | TBD | TBD | |
| Week 11 | Formal verification, Guest lectures | TBD | TBD |
相关推荐
基础软件之道:企业级实践与开源创新
在当今数字化时代,基础软件扮演着企业信息技术架构的关键角色。无论是大型企业还是初创公司,都离不开基础软件的支持。在构建强大的企业级系统时,基础软件的选择和实践显得尤为重要。本文将探讨企业在基础软件方面的实践经验,以及在这一过程中开源技术所扮演的关键角色。
设计AI Agent的持续学习与模型更新机制
在动态环境中,AI Agent需要实时接收新数据,并快速更新模型参数以适应环境变化。本项目旨在设计一种高效的模型更新机制,使AI Agent能够在动态环境中保持高性能。本文系统地探讨了设计AI Agent的持续学习与模型更新机制的核心概念、算法原理、系统架构以及实际应用。通过分析持续学习的必要性、模型更新机制的重要性,结合具体的算法实现和系统设计,为读者提供了从理论到实践的全面指导。
持续学习能力评估:测试模型自我更新
1.1 问题背景 在当今社会,信息技术飞速发展,知识更新速度不断加快,持续学习已成为个人和组织的核心竞争力之一。持续学习不仅仅是指个人对知识的积累,更是指个体在面对复杂、不确定和动态环境时,能够通过不断获取新知识、技能和经验来提升自身适应性和竞争力的能力。因此,如何评估个体的持续学习能力,如何构建能够自我更新的评估模型,成为教育、企业管理和人工智能
持续学习中依赖任务的恢复保证:理论、技术与实践挑战
持续学习旨在让机器学习模型在不遗忘旧知识的前提下,持续学习新任务,是迈向通用人工智能的关键技术之一。其核心挑战在于克服灾难性遗忘,并实现正向知识迁移。从技术原理看,当前主流方法围绕参数隔离、动态系统稳定性、记忆回放和模块化设计等路径展开,旨在为模型性能提供可证明的恢复保证。这种保证对于构建可靠、安全的AI系统(如自动驾驶、智能客服)具有极高的工程价值,它确保了关键前置任务的能力在学习新任务后仍能维持在可控范围内。本文聚焦于持续学习中一个更严峻的挑战:当任务间存在复杂依赖关系时,如何从理论与算法层面,确保被依
创新与持续改进
创新的本质与类型:探讨创新的定义、不同类型和模式,以及创新的周期。创新思维与方法:介绍创新思维的基本原则、方法和应用。持续改进的基础理论:阐述持续改进的概念、精益思想以及实践原则。创新与改进的系统方法:分析SWOT分析、市场需求分析和风险管理。创新与改进的工具与技术:介绍设计思维、系统动力学以及相关工具。创新与改进的实际案例:分析国际知名企业和国内企业的创新与改进实践。创新与改进的最佳实践:总结最佳实践,提供小结与建议。


