Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
history:start [2021/10/19 10:12] – rajit | history:start [2025/01/27 12:16] (current) – rajit | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Language history ====== | ====== Language history ====== | ||
- | This is a rough chronology of the development/ | + | This is a rough chronology of the development/ |
+ | |||
+ | * 1975 E.W. Dijkstra' | ||
+ | * 1978 C.A.R. Hoare' | ||
+ | * 1986 A.J. Martin describes an approach to translating communicating processes into asynchronous circuits in a [[https:// | ||
* 1988-89: The [[https:// | * 1988-89: The [[https:// | ||
- | * ~1991 (?), a language for hierarchical production rules was developed at Caltech (A.J. Martin' | + | |
- | * 1995, a new CAST language ({{ : | + | Language development: |
+ | |||
+ | * ~1991 (?), a language for hierarchical production rules was developed at Caltech (A.J. Martin' | ||
+ | < | ||
+ | define prs (a)f() | ||
+ | { p -> q+ | ||
+ | | ||
+ | } | ||
+ | |||
+ | cell (_)f() | ||
+ | </ | ||
+ | * 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' | ||
- | * 1998-2003 CAST used at Cornell (Rajit Manohar' | + | * 1998-2003 CAST used at Cornell (Rajit Manohar' |
* 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 17: | Line 51: | ||
* 2011, initial template for the core language based on ACT v0 developed | * 2011, initial template for the core language based on ACT v0 developed | ||
* 2012, Intel acquires Fulcrum Microsystems, | * 2012, Intel acquires Fulcrum Microsystems, | ||
- | * 2017, actual implementation of the new features started | + | * 2017, actual implementation of the new features started |
- | * 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 | ||
+ | |||
+ | |||
+ | ACT Language features (current version): | ||
+ | * 1/2019: support for production rules and netlist generation | ||
+ |