SLOCCount is a set of tools for counting physical Source Lines of Code (SLOC) in a large number of languages of a potentially large set of programs. SLOCCount is a “software metrics tool” or “software measurement tool”. SLOCCount was developed to count SLOC in a Linux distribution, but it can be used for counting the SLOC of arbitrary software systems.
SLOCCount has a number of ease-of-use features. It can count physical SLOC for a wide number of languages. Listed alphabetically, they are Ada, Assembly (for many machines and assemblers), awk (including gawk and nawk), Bourne shell (and relatives such as bash, ksh, zsh, and pdksh), C, C++, C# (also called C-sharp or cs), C shell (including tcsh), COBOL, Expect, Fortran (including Fortran 90), Haskell, Java, lex (including flex), LISP (including Scheme), makefiles (though they aren’t usually shown in final reports), Modula3, Objective-C, Pascal, Perl, PHP, Python, Ruby, sed, SQL (normally not shown), TCL, and Yacc. It can gracefully handle awkward situations in many languages, for example, it can determine the syntax used in different assembly language files and adjust appropriately, it knows about Python’s use of string constants as comments, and it can handle various Perl oddities (e.g., perlpods, here documents, and Perl’s _ _END_ _ marker). It even has a “generic” SLOC counter that you may be able to use count the SLOC of other languages (depending on the language’s syntax).
SLOCCount can also take a large list of files and automatically categorize them using a number of different heuristics. The heuristics automatically determine if a file is a source code file or not, and if so, which language it’s written in. For example, it knows that “.pc” is usually a C source file for an Oracle preprocessor, but it can detect many circumstances where it’s actually a file about a “PC” (personal computer). For another example, it knows that “.m” is the standard extension for Objective-C, but it will check the file contents to see if really is Objective-C. It will even examine file headers to attempt to accurately determine the file’s true type. As a result, you can analyze large systems completely automatically.
SLOCCount has some report-generating tools to collect the data generated, and then present it in several different formats and sorted different ways. The report-generating tool can also generate simple tab-separated files so data can be passed on to other analysis tools (such as spreadsheets and database systems).
This is free and open source software.
Website: dwheeler.com/sloccount
Support: Documentation
Developer: David A. Wheeler,
License: GNU General Public License v2.0

SLOCCount is written in C. Learn C with our recommended free books and free tutorials.
Related Software
| Alternatives to cloc | |
|---|---|
| Tokei | Displays statistics about your code |
| scc | Fast accurate code counter with complexity calculations and COCOMO estimates |
| SLOCCount | Set of tools for counting physical Source Lines of Code |
| gocloc | A compact fast cloc tool seeking inspiration from Tokei |
| loccount | Re-implementation of David A. Wheeler’s sloccount tool in Go |
| loc | Rust implementation of cloc, but it’s more than 100x faster |
| tcount | Count your code by tokens and patterns in the syntax tree |
| sloc | Simple tool to count source lines of code written in CoffeeScript |
| polyglot | Command-line tool that determines project contents |
| enry | Programming language detector based on go-enry |
| Linguist | Assess a repository’s languages stats with github-linguist executable |
| CLOCTUI | TUI for CLOC |
Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more. Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form. |

