1
0
mirror of https://github.com/catseye/SixtyPical.git synced 2024-06-02 18:41:35 +00:00

Expand on what the range-checking includes in this version.

This commit is contained in:
Chris Pressey 2018-03-06 16:04:02 +00:00
parent 731b83d20f
commit 8298ad38f9

View File

@ -7,7 +7,15 @@ History of SixtyPical
* It is a static analysis error if it cannot be proven that a read or write
to a table falls within the defined size of that table.
* The reference analyzer's ability to prove this is currently fairly weak,
but it does exist.
but it does exist:
* Loading a constant into a memory location means we know the range
is exactly that one constant value.
* `AND`ing a memory location with a value means the range of the
memory location cannot exceed the range of the value.
* Doing arithmetic on a memory location invalidates our knowledge
of its range.
* Copying a value from one memory location to another copies the
known range as well.
* Cleaned up the internals of the reference implementation (incl. the AST)
and re-organized the example programs in the `eg` subdirectory.
* Most errors produced by the reference implementation now include a line number.