{"title":"Mikrokosmos: an educational lambda calculus interpreter","authors":"Mario Román","doi":"10.21105/JOSE.00029","DOIUrl":null,"url":null,"abstract":"Mikrokosmos is an educational untyped and simply typed lambda-calculus interpreter. For students, it is a tool to learn lambda-calculus and intuitionistic logic by coding. For educators, it is a didactic resource, grounded in the theoretical implementation of a functional programming language, so that they can integrate it with other learning materials. Mikrokosmos can be used on three different environments: (1) as a command line executable, implementing a read-eval-print loop interpreter; (2) as a Jupyter kernel, executing code blocks from a Jupyter notebook (Jupyter Development Team, 2016); and (3) as a Javascript web application, that can be used in conjunction with web text editors such as Codemirror1 to create an online programming environment.","PeriodicalId":75094,"journal":{"name":"The Journal of open source education","volume":" ","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2018-10-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"The Journal of open source education","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.21105/JOSE.00029","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Mikrokosmos is an educational untyped and simply typed lambda-calculus interpreter. For students, it is a tool to learn lambda-calculus and intuitionistic logic by coding. For educators, it is a didactic resource, grounded in the theoretical implementation of a functional programming language, so that they can integrate it with other learning materials. Mikrokosmos can be used on three different environments: (1) as a command line executable, implementing a read-eval-print loop interpreter; (2) as a Jupyter kernel, executing code blocks from a Jupyter notebook (Jupyter Development Team, 2016); and (3) as a Javascript web application, that can be used in conjunction with web text editors such as Codemirror1 to create an online programming environment.