Path: csiph.com!weretis.net!feeder9.news.weretis.net!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: ram@zedat.fu-berlin.de Newsgroups: comp.compilers Subject: Re: A tiny self-hosting compiler used for teaching Date: Sat, 05 Sep 2026 07:02:21 +0000 Organization: Compilers Central Sender: johnl%iecc.com Approved: comp.compilers@iecc.com Message-ID: <26-09-003@comp.compilers> References: <26-08-007@comp.compilers> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="31741"; mail-complaints-to="abuse@iecc.com" Keywords: courses, comment Posted-Date: 05 Sep 2026 20:17:02 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: csiph.com comp.compilers:3755 Michael Lehn wrote or quoted: >In practice, we have seen the opposite. Since introducing ABC, students who >come to the course without previous programming experience have had a >noticeably easier time. They can first learn the programming concepts without >having to deal with some of C's syntactic peculiarities, and the later >transition to C or C++ has not been a problem. Writing a compiler requires implementing complex data structures (like symbol tables) and managing memory. If students have no prior programming experience, they must learn basic control flow, data structures, memory management and compiler theory simultaneously. This creates a steep learning curve, even with a simplified language. The claim that transitioning to C or C++ later "has not been a problem" is the most debatable point. While learning concepts first is beneficial, C requires a deep understanding of hardware interaction, manual memory management, and pointers - areas where students taught via idealized languages frequently struggle. [What language to teach first is an old and insoluble problem. When I was in school most places started with Pascal while MIT started with Lisp. That meant they were dealing with interesting data structures and introspection while we were still explaining how big to make an array. -John]