[scate-users] SCATE available as open source
Brought to you by:
dalders,
ondrejpopp
|
From: Dennis A. <den...@ph...> - 2006-03-06 16:27:39
|
Dear all, We are happy to announce that SCATE is available as open source at http://sourceforge.net/projects/scate. The objective of SCATE is to provide a generic environment for fine grained C++/C parsing/analysis/transformation and hardware mapping tasks. The name environment is significant here. It means that the whole infra structure is a software platform which can help you to implement your own C++/C based analysis/transformation/mapping tasks. You are free to use it, but there where functionality is (still) lacking, you are invited to contribute to it as well. To allow new functionality to get in, SCATE is Open Source under the GPL License. The functionality of SCATE that has been developed so far is a system-level design and programming environment for embedded multiprocessors. Here we consider the mapping of C++ based specifications of embedded systems functions onto heterogeneous multiprocessors containing hardware and software components. In practice this relates to a number of source code transformations on process networks. Transformations should be specified by a system designer. The enforcement of these design decisions in the source code is automated by the SCATE tool. The source code after transformation can - with or without additional manual modifications - be used as input for existing hardware and or software compiler(s). We refer to the home page of SCATE (http://scate.sourceforge.net/) for documentation and demos. If you are interested in using SCATE you may want to subscribe to our mailing list sca...@li... through http://lists.sourceforge.net/lists/listinfo/scate-users. ------------- A large tool like SCATE (currently > 400.000 lines of C++) can only be developed, with limited resources, using powerful source code development tools. These formerly proprietary tools (Ondrej Popp) are made available as open source as well, i.e. C3PO and MPC. C3PO http://sourceforge.net/projects/c3po C3PO is a tool that is able to generate input file(s) for ANTLR (http://www.antlr.org/), based on its own input grammar file(s). The advantage is that C3PO can do this for a number of other compiler compilers as well. Moreover, it is capable of generating datatypes. These datatypes are initialized by the ANTLR generated parser. Besides also datatypes that are not initialized by a parser can be generated. Access functions for the members of the datatype are generated as well, enabling an easy integration of the software structure. -------------- The back-end tool of SCATE is MPC. MPC http://sourceforge.net/projects/mpsc MPC (Multi Purpose structural Compiler) is a tool for generation of network descriptions in various formats or languages (VHDL/Verilog/..), from an efficient structural description language. One of its drivers is able to generate YAPI networks. ------------- YAPI http://sourceforge.net/projects/y-api YAPI is an application programmer's interface to write signal and stream processing applications as process networks. The communication between processes is based on Kahn Process Networks with blocking reads on theoretically unbounded fifos. The library contains a C++ run-time environment to execute applications on desktops and workstations. Hopefully, people also consider making their YAPI applications available to the maintainers of YAPI. This could lead to a database of applications on which transformations can be performed. -------------- Collaboration: In addition, we are thinking about the following future challenges to which we would warmly welcome your collaboration. * Improvements in the system-level design and multiprocessor programming environment. For example, the creation of a user interface for current and future transformations. * Analysis / Transformation of Legacy or foreign code. It is a well known fact that even with high level programming languages many software implementations suffer from clarity and or quality. In this application we want to deal with these issues. For example making the control/dataflow of a program more explicit, scan for 'side effects' or any other anomalies or software constructs that may be interesting. Further on, weakly or even badly written pieces of code could be (semi) automatically transformed, thus improving on the quality of the code, for example its robustness. * Next step would be to add Software Visualization functionality to improve on the cognitive process of analyzing foreign code. In this application, software visualization data is extracted, for example software metrics, which can then be fed to a software visualization system. * Having this in place opens the possibilities of interactive software transformation. Here we make use of software visualization techniques by means of a GUI that also allows for manipulation of the graphical visualization primitives. This will result in the visualized code actually being transformed. Such an approach promises to greatly improve on many tedious software (reverse) engineering and porting tasks of legacy code. Everyone is most welcome to use it, inside or outside Philips, but new features and support has to come from the users and/or the collaborating parties. We look forward to working with you, Dennis Alders, Ondrej Popp ------------------------------------------------------------------------------------------------------------------------------------------------------- Dr. D. Alders ED&T/Synthesis Philips Research Laboratories, Building WAY 3.015, High Tech Campus 5, 5656 AE Eindhoven Tel: +31-40-2745338 Fax: +31-40-2744639 E-mail: den...@ph... ------------------------------------------------------------------------------------------------------------------------------------------------------- |