Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
history:start [2023/02/26 13:35] – rajit | history:start [2025/06/18 16:43] (current) – [Current language features] rajit | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Language history ====== | ====== Language history ====== | ||
- | This is a rough chronology of the development/ | + | This is a rough chronology of the influences from the literature on the ACT language. |
* 1975 E.W. Dijkstra' | * 1975 E.W. Dijkstra' | ||
Line 8: | Line 8: | ||
* 1988-89: The [[https:// | * 1988-89: The [[https:// | ||
- | Language development: | + | ===== Language development |
- | * ~1991 (?), a language for hierarchical production rules was developed at Caltech (A.J. Martin' | + | This is a rough chronology of the development/ |
+ | |||
+ | * ~1991 (?), a language for hierarchical production rules was developed at Caltech (A.J. Martin' | ||
< | < | ||
define prs (a)f() | define prs (a)f() | ||
Line 19: | Line 21: | ||
cell (_)f() | cell (_)f() | ||
</ | </ | ||
- | * 1995, a new CAST language ({{ : | + | * 1995, a new CAST language ({{ : |
+ | < | ||
+ | define f (node a) | ||
+ | { node p, q; | ||
+ | prs { | ||
+ | p -> q+ | ||
+ | } | ||
+ | a = p; | ||
+ | } | ||
+ | f(); | ||
+ | </ | ||
* 1995-1998 CAST was used to implement the [[https:// | * 1995-1998 CAST was used to implement the [[https:// | ||
* ~1998 Andrew Lines and Uri Cummings from Martin' | * ~1998 Andrew Lines and Uri Cummings from Martin' | ||
Line 25: | Line 37: | ||
* 1998-2003 Development continued at Caltech, including embedding CAST-like syntax within the Modula-3 language. This version was used to design the Lutonium processor. | * 1998-2003 Development continued at Caltech, including embedding CAST-like syntax within the Modula-3 language. This version was used to design the Lutonium processor. | ||
* 2004 A language that provided the same functionality as CAST but with syntax for new features (not implemented) was developed at Cornell by Rajit Manohar, based on lessons from using CAST for chip design. This was called ACT (version 0; 0 because the new features were not supported yet) | * 2004 A language that provided the same functionality as CAST but with syntax for new features (not implemented) was developed at Cornell by Rajit Manohar, based on lessons from using CAST for chip design. This was called ACT (version 0; 0 because the new features were not supported yet) | ||
- | * 2005-2008 ACT v0 was used by Achronix Semiconductor, | + | * 2005-2008 ACT v0 was used by Achronix Semiconductor, |
+ | < | ||
+ | defproc f (bool a) | ||
+ | { bool p, q; | ||
+ | prs { | ||
+ | p -> q+ | ||
+ | } | ||
+ | a = p; | ||
+ | } | ||
+ | f dummy; | ||
+ | </ | ||
* 2005-2010 An open-source (GPLed) implementation of an ACT v0 variant (called " | * 2005-2010 An open-source (GPLed) implementation of an ACT v0 variant (called " | ||
* 2005-2014: ACT was used to implement a large number of asynchronous chips, including microprocessors, | * 2005-2014: ACT was used to implement a large number of asynchronous chips, including microprocessors, | ||
Line 32: | Line 54: | ||
* 2012, Intel acquires Fulcrum Microsystems, | * 2012, Intel acquires Fulcrum Microsystems, | ||
* 2017, actual implementation of the new features started at Yale with a fresh implementation of the entire system. | * 2017, actual implementation of the new features started at Yale with a fresh implementation of the entire system. | ||
- | * 2018, Most features of ACT v1 ready | + | * 2018, Most features of ACT v1 ready. The example above would be defined as follows: |
+ | <code act> | ||
+ | defproc f (bool? a) | ||
+ | { bool p, q; | ||
+ | prs { | ||
+ | p -> q+ | ||
+ | } | ||
+ | a = p; | ||
+ | } | ||
+ | f dummy; | ||
+ | </ | ||
* 1/2019, first [[http:// | * 1/2019, first [[http:// | ||
* 4/2019, documentation effort initiated | * 4/2019, documentation effort initiated | ||
- | * 2019, first prototype of static timing analysis | + | |
- | | + | ===== Current language features ===== |
- | | + | |
- | | + | Evolution of ACT Language features (current version): |
- | | + | |
- | | + | |
+ | * 1/ | ||
+ | * 1/2022: support for mixed-signal simulation with '' | ||
+ | * 1/2023: trace file generation | ||
+ | * 1/2024: support for structures | ||
+ | * 1/2025: support for methods | ||
+ | * 6/2025: support for SDF and multi-driver production rules |