Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/BrianWill/pigeon
Compiler of Pigeon (my educational programming language) to Golang.
https://github.com/BrianWill/pigeon
Last synced: 2 months ago
JSON representation
Compiler of Pigeon (my educational programming language) to Golang.
- Host: GitHub
- URL: https://github.com/BrianWill/pigeon
- Owner: BrianWill
- License: mit
- Created: 2016-02-13T04:12:25.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2018-08-14T13:11:37.000Z (over 6 years ago)
- Last Synced: 2024-08-01T13:25:19.953Z (5 months ago)
- Language: Go
- Size: 30.7 MB
- Stars: 39
- Watchers: 5
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.MD
- License: LICENSE
Awesome Lists containing this project
- awesome-ccamel - BrianWill/pigeon - Compiler of Pigeon (my educational programming language) to Golang. (Go)
README
# Pigeon, an educational programming language
Video lessons on [Youtube](https://www.youtube.com/watch?v=tMZQb7CPWDY&list=PLIbUZ3URbL0GcLBpWebtEXO5kT2_vHfBW).
Pigeon ([reference](docs/pigeon-reference.md), [notes](docs/pigeon-notes.md)) teaches basic programming concepts common to all mainstream languages:
- variables
- operations
- branching, looping
- local and global variables
- functions
- lists and hashmapsGoPigeon ([reference](docs/go-pigeon-reference.md), [notes](docs/go-pigeon-notes.md)) builds upon Pigeon to teach most of the core concepts of the Go language (*sans* goroutines and channels):
- static typing
- arrays and slices
- multi-return functions
- structs
- methods
- interfaces
- typeswitches
- pointers
- bitwise operations
- reading/writing filesOnce a student is comfortable with GoPigeon, learning Go is mostly a matter of adjusting to different syntax. ([Learning Go after Pigeon](docs/go-lang.md))
# Installation and usage
Because Pigeon compiles to Go, you'll need to install the [Go tools](https://golang.org/doc/install) if you haven't already. Once the Go tool is installed, you can install the Pigeon compiler with one command:
```
go get github.com/BrianWill/pigeon
```This will put the Pigeon executable in your Go bin directory. Assuming the Go bin directory is on your shell path, you can then run the compiler from any directory like so:
```
pigeon somefile.pigeon # compile and run somefile.pigeon as a Pigeon program
pigeon somefile.gopigeon # compile and run somefile.gopigeon as a GoPigeon program
```