Skip to content
Back to skills

Acol Interpreter Benchmark Eval

ASecurity

Evaluates the execution speed and dispatching efficiency of different interpreter implementations (AST vs. bytecode variants) for a simple imperative language (ACOL) in Prolog. Use when the user wants to benchmark on ACOL Interpreter Benchmarks, or asks about evaluating this task. Reports geometric_mean_runtime.

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 11, 2026
researchpythongitperformance

Security analysis

A100/100

Scanned September 11, 2026

npx -y skills add qhjqhj00/research-skills-pool --skill acol-interpreter-benchmark-eval --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Acol Interpreter Benchmark Eval?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Acol Interpreter Benchmark Eval
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/qhjqhj00-acol-interpreter-benchmark-eval/badge)](https://www.skillsdirectory.com/skills/qhjqhj00-acol-interpreter-benchmark-eval)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: acol-interpreter-benchmark-eval
description: Evaluates the execution speed and dispatching efficiency of different interpreter implementations (AST vs. bytecode variants) for a simple imperative language (ACOL) in Prolog. Use when the user wants to benchmark on ACOL Interpreter Benchmarks, or asks about evaluating this task. Reports geometric_mean_runtime.
metadata:
  skill_kind: dataset_eval
  source_arxiv: 2008.12543
  bibtex_key: korner2020bytecode
  confidence: high
---

# acol-interpreter-benchmark-eval

> On the Performance of Bytecode Interpreters in Prolog — Korner et al. (2020) (arXiv:2008.12543, 2020)

## What this evaluates

Evaluates the execution speed and dispatching efficiency of different interpreter implementations (AST vs. bytecode variants) for a simple imperative language (ACOL) in Prolog.

## Datasets

- **ACOL Interpreter Benchmarks** — total 6; splits: test (6); repo https://github.com/pkoerner/prolog-interpreters

## Metrics

- `geometric_mean_runtime` **(primary)** — range: other
  - Geometric mean of 10 execution runs per interpreter per benchmark. Also reported as normalized runtime relative to the baseline AST interpreter.

## Input / output format

**Input**: ACOL programs (while-loops, if-statements, assignments, comparisons, additions/subtractions) with pre-initialized environment variables.

**Output**: Execution time in seconds (mean ± 0.95 confidence interval over 10 runs).

## Scoring recipe

```python
runtimes = []
for _ in range(10):
    t = run_program_in_interpreter(program, interpreter)
    runtimes.append(t)
mean_runtime = geometric_mean(runtimes)
normalized_runtime = mean_runtime / baseline_ast_mean_runtime
return mean_runtime, normalized_runtime
```

## Common pitfalls

- Compilation time is explicitly excluded; only interpreter dispatch/runtime is measured.
- Geometric mean is used for aggregation instead of arithmetic mean, as specified by the authors.
- Small handwritten programs may benefit from AST caching, skewing results compared to larger generated programs.

## Evidence (verbatim from paper)

> Each program was executed with every interpreter ten times. The runtime consists only of the time spent in the interpreter. Compilation time is excluded, as it is not implemented efficiently and, ultimately, not relevant. The mean value is determined by the geometric mean as proposed by [5].

## Citation

```bibtex
@misc{korner2020bytecode,
  title={On the Performance of Bytecode Interpreters in Prolog},
  author={Korner et al. (2020)},
  year={2020},
  note={arXiv:2008.12543}
}
```

- arXiv: 2008.12543

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…