This newsletter is available from the CADP Home page.
This page summarizes the recent evolution of the CADP toolbox from the
point of view of its community of users and software developers. Other
results, including scientific advances, publications, applications of
CADP to industrial problems, and new prototype tools built on top of
CADP can be found in the yearly activity report of the CONVECS team.
In 2014, the development of CADP has steadily progressed. Following the monthly rolling-release model established in 2013, twelve versions of CADP have been released in 2014. From version 2014-a to version 2015-a, 63 bugs have been fixed and 154 improvements have been brought. The diagram to the right gives the repartition of efforts between the various components of CADP. Effort was not measured in time but in the number of lines of the HISTORY file, based on the reasonable assumption that the more involved a change, the more lines needed to describe it. This diagram highlights the effort put on the LNT language, which is a next-generation process calculus that progressively replaces LOTOS. Since 2010, all academic and industrial case studies done by the VASY and CONVECS teams have been modelled using LNT rather than LOTOS. In 2014, the LNT language was enhanced and its tools consolidated. The SVL language was also significantly enriched with new operators that make SVL scripts more expressive and more readable. Many CADP demos have been upgraded to take advantage of these enhancements, and also to show value-passing temporal logic formulas in the MCL language supported by the EVALUATOR 4 model checker. Also, the AUT and BCG formats, as well as the XTL language and compiler have been revised and extended to better support the data-type capabilities of the LNT language, in particular variable-length strings and user-defined data structures. Finally, the CAESAR.BDD tool was significantly expanded as a means to strengthen the cooperation between the process-calculi and Petri-net communities. |
For details, see HISTORY entries: #1893 #1895 #1900.
For details, see HISTORY entries: #1877 #1880 #1885 #1943 #1944 #1947 #1951 #1953 #1954 #1956 #1957 #1958 #1960 #1961 #1962 #1963 #1965 #1966 #1970 #1903.
For details, see HISTORY entries: #1782 #1827 #1868 #1896 #1898.
Conversely, CAESAR was made stricter by rejecting at compile-time LOTOS specifications containing out-of-bound constants, even if such constants are never used.
Performance has been increased by adding or strengthening a number of optimizations concerning, e.g., internal data structures, Boolean guards that can be statically evaluated, values belonging to singleton sorts, disconnected or otherwise unreachable Petri net places and transitions, etc.
For details, see HISTORY entries: #1774 #1779 #1789 #1803 #1875 #1890 #1907 #1909 #1911 #1914 #1917 #1920 #1924 #1933 #1935 #1937 #1986.
For details, see HISTORY entry: #1775.
The textual syntax for NUPN has been extended with pragmas intended to retain useful properties of non-ordinary and/or non-safe Petri nets translated to NUPN. An XML syntax for NUPN (compatible with the ISO standard PNML for the representation of Petri nets) has been defined and adopted by the Model Checking Contest. A translator from PNML to NUPN has been developed at LIP6 (Paris, France).
The CAESAR.BDD tool has been updated accordingly, and extended to perform stricter checks and compute more structural and behavioural properties of NUPN models. CAESAR.BDD has been intensively used to correct the descriptions of the Model Checking Contest benchmarks: a first campaign (January-February 2014) detected 9 errors in structural properties and 8 errors in behavioural properties, and a second campaign (April 2014) revealed 23 more errors. CAESAR.BDD has also been used to automatically generate new benchmarks, together with their descriptions.
For details, see HISTORY entries: #1780 #1781 #1793 #1795 #1797 #1807 #1809 #1812 #1814 #1815 #1819 #1822 #1823 #1828 #1829 #1832 #1833 #1835 #1848 #1871 #1941 #1980.
For details, see HISTORY entries: #1840 #1855 #1860 #1873 #1874 #1879 #1928 #1932 #1934 #1976 #1987 #1988.
For details, see HISTORY entries: #1802 #1804 #1806 #1808 #1940.
For details, see HISTORY entries: #1905 #1910 #1912 #1942.
For details, see HISTORY entries: #1776 #1777 #1778 #1784 #1786 #1787 #1788 #1790 #1792 #1794 #1796 #1798 #1799 #1800 #1805 #1810 #1811 #1813 #1824 #1825 #1826 #1830 #1831 #1834 #1836 #1837 #1839 #1843 #1845 #1846 #1847 #1850 #1851 #1852 #1853 #1854 #1856 #1857 #1858 #1859 #1861 #1862 #1865 #1878 #1881 #1887 #1939.
The "verify" operator has been generalized to give access to all three model checkers of CADP (EVALUATOR 3, EVALUATOR 4, and XTL). A new statement "|=" has been added to SVL, which enables MCL and XTL formulas to be directly written in an SVL script, rather than being stored in external files.
To provide for requirements expression and traceability in SVL, two new statements, "property" and "check", have been introduced. They increase the readability and good structure of SVL scripts by allowing to define and verify properties, each of which is given a name, instantiable parameters, an informal textual description, and (optionally) an expected truth value.
For details, see HISTORY entries: #1783 #1864 #1866 #1867 #1869 #1870 #1904 #1906 #1908 #1913 #1916 #1918 #1919 #1921 #1923 #1925 #1927 #1929 #1930 #1936 #1938 #1985.
For details, see HISTORY entries: #1897 #1894 #1902.
Convergence between the LOTOS, LNT, BCG, and XTL data-type libraries has been increased by defining common libraries for eight predefined types: Boolean, Natural, Integer, Real, Character, String, Raw, and Gate. These libraries gather in the same place definitions of types, constants, and functions that were previously disseminated across different tools. Additionally, systematic checks for underflows and overflows have been set for the Natural and Integer types. Also, unprintable characters and C-like escape sequences are now uniformly handled by the Character, String, and Raw types.
For details, see HISTORY entries: #1838 #1849 #1863 #1872 #1876 #1882 #1883 #1884 #1891 #1945 #1946 #1950 #1948 #1952 #1955.
The type checking system of XTL and its list of predefined functions have been extended to support the new Natural and Raw types of the BCG format, and to properly distinguish between Natural and Integer values, and Raw and String values, while achieving a high degree of backward compatibility. In particular, XTL now uses type information from the BCG labels to better solve overloading in label offers, so that certain XTL programs that were formerly invalid are now accepted. Finally, it is now possible to use the predefined types and functions of XTL when defining temporal operators directly using external C code.
For details, see HISTORY entries: #1791 #1931 #1949 #1959 #1964 #1967 #1968 #1969 #1971 #1972 #1973 #1974 #1975 #1977 #1978 #1979 #1982 #1983 #1984.
For details, see HISTORY entries: #1772 #1773 #1785 #1801 #1816 #1817 #1818 #1820 #1821 #1841 #1842 #1844 #1886 #1888 #1889 #1892 #1899 #1901 #1915 #1922 #1926 #1931 #1981.
We are extremely grateful to the following scientists, who provided us with valuable feedback and advice about the use of CADP: