{"id":13562113,"url":"https://github.com/BrianWill/pigeon","last_synced_at":"2025-04-03T18:32:29.450Z","repository":{"id":57569428,"uuid":"51631609","full_name":"BrianWill/pigeon","owner":"BrianWill","description":"Compiler of Pigeon (my educational programming language) to Golang.","archived":false,"fork":false,"pushed_at":"2018-08-14T13:11:37.000Z","size":32233,"stargazers_count":39,"open_issues_count":1,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-08-01T13:25:19.953Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BrianWill.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-02-13T04:12:25.000Z","updated_at":"2024-02-17T03:13:06.000Z","dependencies_parsed_at":"2022-08-23T20:11:13.060Z","dependency_job_id":null,"html_url":"https://github.com/BrianWill/pigeon","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrianWill%2Fpigeon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrianWill%2Fpigeon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrianWill%2Fpigeon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BrianWill%2Fpigeon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BrianWill","download_url":"https://codeload.github.com/BrianWill/pigeon/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223010445,"owners_count":17072988,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T13:01:04.717Z","updated_at":"2024-11-04T14:30:43.401Z","avatar_url":"https://github.com/BrianWill.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# Pigeon, an educational programming language\n\nVideo lessons on [Youtube](https://www.youtube.com/watch?v=tMZQb7CPWDY\u0026list=PLIbUZ3URbL0GcLBpWebtEXO5kT2_vHfBW).\n\nPigeon ([reference](docs/pigeon-reference.md), [notes](docs/pigeon-notes.md)) teaches basic programming concepts common to all mainstream languages:\n\n- variables\n- operations\n- branching, looping\n- local and global variables\n- functions\n- lists and hashmaps\n\nGoPigeon ([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):\n\n- static typing\n- arrays and slices\n- multi-return functions\n- structs\n- methods\n- interfaces\n- typeswitches\n- pointers\n- bitwise operations\n- reading/writing files\n\nOnce 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)) \n\n# Installation and usage\n\nBecause 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:\n\n```\ngo get github.com/BrianWill/pigeon\n```\n\nThis 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:\n\n```\npigeon somefile.pigeon        # compile and run somefile.pigeon as a Pigeon program\npigeon somefile.gopigeon      # compile and run somefile.gopigeon as a GoPigeon program\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBrianWill%2Fpigeon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FBrianWill%2Fpigeon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBrianWill%2Fpigeon/lists"}