# AwkwardForth: accelerating Uproot with an internal DSL

- Institution: CERN
- Department: Conferences
- Speaker: Jim Pivarski
- Year: 2021
- Language: English
- Subjects: Physics, Computer science, Earth and environment
- Source: [CERN](https://videos.cern.ch/record/3008195)
- Licence: [CERN](http://copyright.web.cern.ch)
- Who can watch: Tweens profiles and older (sources give no ratings; placed by Invisible Network from the source's own words)

File formats for generic data structures, such as ROOT, Avro, and Parquet, pose a problem for deserialization: it must be fast, but its code depends on the type of the data structure, not known at compile-time. Just-in-time compilation can satisfy both constraints, but we propose a more portable solution: specialized virtual machines. AwkwardForth is a Forth-driven virtual machine for deserializing data into Awkward Arrays. As a language, it is not intended for humans to write, but it loosens the coupling between Uproot and Awkward Array. AwkwardForth programs for deserializing record-oriented formats (ROOT and Avro) are about as fast as C++ ROOT and 10‒80× faster than fastavro. Columnar formats (simple TTrees, RNTuple, and Parquet) only require specialization to interpret metadata and are therefore faster with precompiled code..

0:00:00 Slide 1

0:01:12 Slide 2

0:02:24 Slide 3

0:03:36 Slide 4

0:04:47 Slide 5

0:05:59 Slide 6

0:07:11 Slide 7

0:08:22 Slide 8

0:09:34 Slide 9

0:10:46 Slide 10

0:11:58 Slide 11

## Lectures

1. [AwkwardForth: accelerating Uproot with an internal DSL](https://invisiblenetwork.ai/learn/cern/3008195/1efa52ff8690), 12 min (CERN's player)
