1
0
mirror of https://github.com/catseye/SixtyPical.git synced 2024-11-22 17:32:01 +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 * 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. to a table falls within the defined size of that table.
* The reference analyzer's ability to prove this is currently fairly weak, * 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) * Cleaned up the internals of the reference implementation (incl. the AST)
and re-organized the example programs in the `eg` subdirectory. and re-organized the example programs in the `eg` subdirectory.
* Most errors produced by the reference implementation now include a line number. * Most errors produced by the reference implementation now include a line number.