Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Part 1: Defining LAMBDA

Here you will learn how to define a very simple language in K and the basics of how to use the K tool. The language is a variant of call-by-value lambda calculus and its definition is based on substitution. Specifically, you will learn the following:

  • How to define a module.
  • How to define a language syntax.
  • How to use the defined syntax to parse programs.
  • How to import predefined modules.
  • How to define evaluation strategies using strictness attributes.
  • How to define semantic rules.
  • How the predefined generic substitution works.
  • How to generate PDF and HTML documentation from ASCII definitions.
  • How to include builtins (integers and Booleans) into your language.
  • How to define derived language constructs.

This folder contains several lessons, each adding new features to LAMBDA.