srcML

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)

srcML v1.0.0

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

exe
macOS    

Catalina 10.15

pkg

Mojave 10.14

pkg
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.

srcML Tools

Additional srcML-based tools are available at srcML Tools