aboutsummaryrefslogtreecommitdiff
path: root/implementation/compile
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2022-06-27 22:00:55 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2022-06-27 22:00:55 -0400
commit8389e763344637c01d0d7161091e5f2cd9b14251 (patch)
tree5406113f6711c6b1222650228cba453c2e4641fa /implementation/compile
parentb6185d5029e2adcc721c0cc2097f591d9a09f135 (diff)
Yet still more editing
Diffstat (limited to 'implementation/compile')
-rw-r--r--implementation/compile/dynamic.md2
1 files changed, 1 insertions, 1 deletions
diff --git a/implementation/compile/dynamic.md b/implementation/compile/dynamic.md
index 2cf4979f..311fb90e 100644
--- a/implementation/compile/dynamic.md
+++ b/implementation/compile/dynamic.md
@@ -83,7 +83,7 @@ If the implementation is able to make use of all available threads (possible whe
### Anticipation
-The [hot path](#hot-paths) strategy depends on targetting code for optimization based on history. Anticipation would identify in advance what code will take longer to run, and allocate a fraction of the time taken for optimizing that code. This is most useful for code that runs a small number of times on large arrays. An example where anticipation would be very important is for a programmer trying experimental one-off queries on a large dataset.
+The [hot path](#hot-paths) strategy depends on targeting code for optimization based on history. Anticipation would identify in advance what code will take longer to run, and allocate a fraction of the time taken for optimizing that code. This is most useful for code that runs a small number of times on large arrays. An example where anticipation would be very important is for a programmer trying experimental one-off queries on a large dataset.
The end result seems similar to that obtained by thunks as discussed at Dyalog '18 ([video](https://dyalog.tv/Dyalog18/?v=-6no6N3i9Tg), [slides](https://www.dyalog.com/user-meetings/uploads/conference/dyalog18/presentations/D15_The_Interpretive_Advantage.zip)). A thunk runs as part of a primitive, detecting that computing the result will be slow and outputting a deferred computation instead. Anticipation is more powerful because it can scan ahead in the bytecode instead of deciding as primitives are called whether or not to expand the thunk.