git @ Cat's Eye Technologies SixtyPical / 918b400
Update README to link to more related information. Chris Pressey 1 year, 2 months ago
1 changed file(s) with 18 addition(s) and 6 deletion(s). Raw diff Collapse all Expand all
00 SixtyPical
11 ==========
22
3 _Version 0.21. Work-in-progress, everything is subject to change._
3 _Version 0.21_
4 | _See also:_ [Bubble Escape 2K](https://github.com/catseye/Bubble-Escape)
5 ∘ [SITU-SOL](https://github.com/catseye/SITU-SOL)
46
5 **SixtyPical** brings [extended static checking][] to the [6502][].
7 - - - -
8
9 _NOTE:_ Having met the majority of its goals, the SixtyPical project
10 might not see much more development going forward. See
11 [Future directions for SixtyPical][] for more information.
12
13 - - - -
14
15 **SixtyPical** brings advanced static analysis to the [6502][].
616
717 SixtyPical is a [low-level](#low-level) programming language
818 supporting some advanced [static analysis](#static-analysis) methods.
6777 ### Static analysis
6878
6979 The SixtyPical language defines an [effect system][], and the reference
70 compiler [abstractly interprets][] the input program to check that
71 it conforms to it. It can detect common mistakes such as
80 compiler [symbolically executes][] the input program in the manner of
81 [flow typing][] to confirm that it does not violate it. This can detect
82 common mistakes such as
7283
7384 * you forgot to clear carry before adding something to the accumulator
7485 * a subroutine that you called trashes a register you thought it preserved
126137 * [Output formats supported by `sixtypical`](doc/Output%20Formats.md)
127138 * [TODO](TODO.md)
128139
140 [Future directions for SixtyPical]: https://gist.github.com/cpressey/f35e104b3e3cf555824aa2b4d15ea858
129141 [6502]: https://en.wikipedia.org/wiki/MOS_Technology_6502
130142 [MOS Technology 6502]: https://en.wikipedia.org/wiki/MOS_Technology_6502
131 [extended static checking]: https://en.wikipedia.org/wiki/Extended_static_checking
132143 [effect system]: https://en.wikipedia.org/wiki/Effect_system
133 [abstractly interprets]: https://en.wikipedia.org/wiki/Abstract_interpretation
144 [symbolically executes]: https://en.wikipedia.org/wiki/Symbolic_execution
145 [flow typing]: https://en.wikipedia.org/wiki/Flow-sensitive_typing
134146 [calling conventions]: https://en.wikipedia.org/wiki/Calling_convention
135147 [register allocation]: https://en.wikipedia.org/wiki/Register_allocation
136148 [VICE]: http://vice-emu.sourceforge.net/