The short answer
A program can execute a translator without yet executing the code that translator produces. The distinction is easy to miss when both activities happen in one interactive session.
Compare the representations
When a BASIC program contains assembly language, what runs at each stage?
Keep the stated evidence separate from the conclusions it permits.
| Distinction | Representation or action | What follows โ and what does not |
|---|---|---|
| BASIC session | The interpreter reaches the assembly stage. | It can run a translator without yet calling its output. |
| Assembly | Source statements are translated into machine code. | Successful translation does not prove the intended computation ran. |
| Execution | The generated routine is called. | Its output and control behaviour require their own checks. |
Chronology
A timeline of the turning points
Selected historical record
The cited record supplies the historical starting point; the labelled examples below are original.
The manualโs hybrid environment
Chapter 44 of the BBC Microcomputer User Guide explains assembly statements inside square brackets, machine-code output placed from the address in P%, and a later CALL into the resulting code. The manual also discusses labels and two-pass assembly.
Sources for this section: [1]
An original sequence of events
Imagine an educational program with three labelled stages. Stage A reserves a block for generated code. Stage B runs the assembler over a short source fragment and writes its output there. Stage C calls the resulting machine-code routine. These are descriptive stages, not a copied program listing or an instruction to modify arbitrary addresses on a real machine.
If the user stops after B, the fragment may have been translated successfully without its intended calculation having run. If C jumps to the wrong place, the source may be well formed while execution is wrong. If B fails on an unresolved label, there may be no complete routine ready for C. Each failure belongs to a different stage.
Why a forward label needs another pass
The manualโs two-pass discussion explains the problem of referring to a label before its address has been assigned. A first pass determines labels; a subsequent pass can use them when generating the completed instructions.
For an invented reading trace, write โbranch to finishโ before the line labelled finish. On the first pass, the later lineโs position becomes known. On the next pass, that known position can resolve the earlier reference. This is not a claim that the first pass executes the branch or that two passes prove the routineโs behaviour correct. Translation and testing remain separate.
Sources for this section: [1]
Three records to inspect
Keep the source text, the assembly result and the execution result distinct. The source shows what was requested. The generated bytes or an assembly listing show what was produced. An execution trace or output shows what happened when the result was called. Agreement among them needs checking rather than assumption.
The same distinction helps interpret Wilsonโs biography. Designing a BASIC interpreter, supplying an assembly facility and designing a processor instruction set are related but different achievements. The historical manual demonstrates capabilities of a particular environment. This article supplies a reading framework without claiming emulator tests, current compatibility advice or personal authorship by Wilson of every manual example.
Continue the chronology
Related history guides
Biography context
Explore United Kingdom through connected lives
Connected biographies
A working life behind the record
Quick answers
Common questions
- Does the first assembly pass execute each branch in the new routine?
- No. In this reading model, the pass establishes information needed for translation. Running the resulting routine is a separate event.
Primary and institutional sources
How this history was checked
The account identifies the selected portions actually consulted. Original scenarios and reference answers explain the distinction without reproducing the sourceโs diagrams or implying that historical software was run. This article was reviewed on 5 November 2026.
