Coding existed long before silicon chips and computers.
Dionysius Exiguus (“Dionysius the Thin”, or “the Short” ) who lived around 470-544), is best known as the inventor of the Anno Domini year system (now variously called Current Era or Common Era – CE). In his Argumenta Paschalia, Dionysius gives a number of algorithms for computing the date of Easter, solar and lunar cycles, and the indiction. In Argument II, he gives the following prescription for calculating the Byzantine-style indiction:
Argumentum II. De indictione.
Si vis scire quota est indictio, ut puta, consulatu Probi junioris, sume annos ab incarnatione Domini nostri Jesu Christi DXXV. His semper adjice III, fiunt DXXVIII. Hos partire per XV, remanent III. Tertia est indictio. Si vero nihil remanserit, decima quinta indictio est.
This is software. Today we might call it pseudocode. It is a compact, deterministic algorithm expressed in logical language. It specifies the input, the transformation, and the output.
Here is what Dionysius’s instructions are doing in modern terms:
- Take a year (e.g., 525).
- Add 3.
- Divide the result by 15.
- Look at the remainder.
- If the remainder is 0, the indiction is 15; otherwise, it is the remainder.
What is striking about Dionysius’s instruction is how modern it feels. It assumes a user (“If you wish to know…”), it defines a repeatable procedure, it handles an edge case (remainder = 0), and it produces a deterministic output.
What is indiction?
An indiction is a position within a repeating 15-year cycle. Each year in the cycle is numbered from 1 to 15, after which the count begins again. By late Antiquity, the indiction had evolved beyond taxation into a standard chronological tool, especially useful for record-keeping, legal documents, and ecclesiastical dating. Because the cycle repeats, an indiction number on its own does not uniquely identify a year, but must be interpreted alongside other information.
In the Byzantine Empire (‘Eastern Roman Empire’, as some modern historians insist on calling it), and areas with a lingering Greek presence, such as Norman Sicily and Southern Italy, years were dated from the creation of the world (anno mundi). This system coexisted with other dating methods, including regnal years (counted from the accession of an emperor or king) and, later, the anno Domini system introduced by Dionysius Exiguus.
Medieval documents often bore the indiction instead of the year. In practice, this meant that a document might be dated simply “in the third indiction”, relying on the reader’s familiarity with the current cycle or additional contextual clues. For historians, this can make precise dating difficult, requiring reconstruction through cross-referencing with known historical timelines, reigns, or events.
Inspired by Dionysius Exiguus, I wrote a little Python package called computus. It is available here:
