srcML
noun | src·M·L | \sōrs-em-el\
1 : an infrastructure for the exploration, analysis, and manipulation of source code.
2 : an XML format for source code.
3 : a lightweight, highly scalable, robust, multi-language parsing tool to convert source code into srcML.
4 : a free software application licensed under GPL.
News:
New Python bindings, github.com/srcML/pylibsrcml
, released (May 2022). With the latest version of srcML and Python installed, run pip install pylibsrcml
Maletic and Collard were recently (July 2020) awarded a grant from the National Science Foundation (CNS 20-16465/16452). The multi-year grant is for adding additional language (e.g., Python, javascript, Go, etc.) support to srcML via a parser generator.
Maletic and Collard recieved the Mining Software Repositories 2020 Foundational Contribution Award for their work developing the srcML Infrastructure, "which addresses many hard problems in source code parsing and has fostered a wide range of research innovations throughout software engineering". See the talk on YouTube, it starts at about minute 26 and lasts about 15 minutes.
Maletic gave an invited Keynote Address on the development history of srcML at the 27th IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER) 2020 in London Ontario, Canada Feb. 18-21. (Download slides)
The latest release (January 2020) - installers and executables. Downloads include the command line interface client, srcml, and the srcML library, libsrcml. Linux downloads have a separate installer to develop applications that use the libsrcml library. Let us know if you need an installer for a platform not listed here.
Windows | ||
---|---|---|
Windows 10 |
|
macOS | ||
---|---|---|
Catalina 10.15 |
|
|
Mojave 10.14 |
|
Linux | Client | Develop |
---|---|---|
Ubuntu 20.04 |
||
Ubuntu 19.10 |
||
Ubuntu 19.04 |
||
Ubuntu 18.10 |
||
Ubuntu 18.04 |
||
Ubuntu 16.04 |
||
Ubuntu 14.04 |
||
Fedora 32 |
||
Fedora 31 |
||
Fedora 30 |
||
Fedora 29 |
||
Fedora 28 |
||
Fedora 27 |
||
Fedora 26 |
||
CentOS 8 |
||
CentOS 7 |
||
openSUSE 42.3 |
||
openSUSE 15.1 |
||
openSUSE 15.0 |
Source Code |
srcML 1.0.0 |
---|
The manpage, README.md, and CHANGES.md are also available. Older versions of srcML are available as previous releases, including 0.9.5 Beta.
Additional srcML-based tools are available at srcML Tools