Function is Class, and Call Frame is Instance. An Introduction to ago Programming Language

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.

Authors

Publication Details

Journal
Zenodo (CERN European Organization for Nuclear Research)
Published
2026-06-26
DOI
https://doi.org/10.5281/zenodo.20919494
Primary Topic
Logic, programming, and type systems
Type
preprint
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
preprint

Function is Class, and Call Frame is Instance. An Introduction to ago Programming Language

Xu Ming
Zenodo (CERN European Organization for Nuclear Research)
Logic, programming, and type systems
preprint

Function is Class, and Call Frame is Instance. An Introduction to ago Programming Language

Xu Ming
preprint en

Abstract

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.

Zenodo (CERN European Organization for Nuclear Research)
Logic, programming, and type systems
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.