Function is Class, and Call Frame is Instance. An Introduction to ago Programming Language
Authors/Creators
Description
Through systematic analysis of technologies such as animation systems, coroutines, and workflow engines, this paper identifies that they essentially attempt to formally represent "actions" in the real world. Traditional programming languages face significant limitations when describing persistent, asynchronous actions that can be suspended by external events; and this limitation is overcome by re‑conceptualising the Call Frame. By extracting CallFrame from low‑level machine mechanisms into an object‑oriented viewpoint, I find that an objectified CallFrame can serve as a complete representation of an action, it leads to the novel proposition: "Function is Class, and CallFrame is Instance.". Based on this idea, I design and implement the ago programming language (named after the Esperanto word Action). Its core idea treats actions as resumable, persistable CallFrames, with prototype verification completed in Java runtime. This paper elaborates on ago's architecture, and key designs including parameterized classes, type scalarization, extended boxing, and call-time overloading, and some common runspaces in real world.
Files
Function is Class, and Call Frame is Instance. An Introduction to ago Programming Language (en and zh-CN).pdf
Files
(4.4 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:68b01fe2ad654f0f3775f84138792574
|
4.4 MB | Preview Download |
Additional details
Software
- Repository URL
- https://github.com/siphonlab/ago
- Programming language
- Java , Groovy
- Development Status
- Active