Basic Compiler Studies

From Radio Electronics
Jump to navigation Jump to search

Basic Compiler Studies

Introduction

add something here

Phase I

The Task

Simple put this way: Fry a few brain cells by studying something that might be by most people's thinking to be too hard to learn.
Learn it anyway by breaking the 'task' in to smaller steps.
So the first task is to learn how to parse a command line and do a simple calculator!

The Runtime Details

The Tools

The Books

  • Dragon Book by Alfred V Aho : Compilers Principles, Techniques, and Tools (2nd Edition)
  • Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages (Pragmatic Programmers) 1st Edition
  • List Item
  • List Item
  • List Item

Other Docs

  • "Let's build a COMPILER!" by Jack W. Crenshaw, Ph.D. — (link)
  • List Item
  • List Item
  • List Item
  • MarkeyJester's Motorola 68000 Beginner Tutorial — (link)
  • Online book about 68000 : (link)

Miscellaneous

  • Desk calculator — dc (computer program)
  • Basic calculator — (Examples) : How to Use GNU bc in Linux.
  • Calc — An arbitrary precision calculator : by David I. Bell, Landon Curt Noll and others.
  • List Item
  • List Item
  • The Free 15C RPN Scientific Calculator

Summary

This will answer what I really learned.

Phase I (supplemental)

Short list of goals:
  1. Never try to replace: FreeBASIC (fbc) or FreePascal (fpc)
  2. Priority of coding : a. works; b: readable; c: not to big/bloated; d: sort of fast (in that order)
  3. Port my calculator code and and then a Tiny Pascal compiler (front end) and an assembly source back-end.
  4. What the "backend" is defined as is:
    • NASM code for (amd86/x86_64)
    • GNU asm (as) for ARM,
    • RiscV,
    • Motorola 68000,
    • Atmel-8bit,
    • Raspberry Pi,
    • ..... etc : TI-430 (unknown), Z80 (unknown)?
  5. Seriously try to make 6 month progress, with documentation showing each months progress going though the online docs (that I have already found)
  6. Break these tasks in to 5 well defined steps (with defined objective in each phase)

Phase II

The Task

add something here

The Runtime Details

The Tools

  • List Item
  • List Item
  • List Item

The Books

  • List Item

Other Docs

  • List Item

Miscellaneous

add something here

Summary

add something here

Phase III

I, Digital Dave, of being sound mind and body, do hereby pledge to commit to studying interpreters and compilers starting today and get to a point where I know 100% how they work!
Signature: DB
Date: 17 November 2023

The Task

add something here

The Runtime Details

The Tools

The Books

Other Docs

Let's Build A Simple Interpreter.

Miscellaneous

add something here

Summary

add something here

Phase IV

Phase V

Master Summary


Kc4zvw (talk) 16:49, 17 November 2023 (UTC)