Tinylangs: Programming languages in 50 lines of Python

54 points by ayoisaiah 8 months ago | 6 comments
  • joeyagreco 8 months ago
    God I love Python
    • woodrowbarlow 8 months ago
      first of all, i love this. these are each a piece of poetry, beautiful in their simplicity.

      the tcl.py uses a function `op` which appears to be a builtin, but i can't find it listed in Python's list of builtin functions, nor in the operator module. is this function documented?

      • Paul-Craft 8 months ago
        I don't love the "simple" lexer for PL/0. Specifically, I don't think this

        > m = re.match(r"(?P<num>[0-9]+)|(?P<op>[-+*/()<>=])|(?P<ws>\s+)|(?P<kw>begin|end\.|end|if|then|while|do|var|!|\?|call|procedure)|(?P<id>[a-zA-Z]+)|(?P<semi>;)|(?P<asgn>:=)|(?P<comma>,)", code)

        can be called simple. APL's is similar but less complex.

        Notably, however, the BASIC and LISP interpreters are* delightfully simple throughout.

        • daelon 8 months ago
          No, that's definitely simple. It's downright elegant, in fact.
        • foolswisdom 8 months ago
          It's a parameter passed to the tcl_m function it's enclosed in.
      • 8 months ago