Thread: A few interesting tools...

  1. #1
    Disrupting the universe Mad_guy's Avatar
    Join Date
    Jun 2005
    Posts
    258

    A few interesting tools...

    Recently I've been scavenging around and I've found some interesting tools I'd like to share. :]

    Coccinelle - a 'semantic patch' based framework - you can think of it like a super-uber-enhanced version of GNU patch. The primary motivation AFAICS, as seen on the page, is semantic patching of e.g. Linux drivers. You'll really just have to go to the webpage and see an example/read a little to get an idea of how it works because I can't explain it too well, but it's an amazingly innovative and cool idea.

    Frama-C - a framework for C source code analysis; has a lot of really interesting tools, the two catching my eye the most being:

    * Jessie/ACSL - A plugin for formally proving properties about your programs.
    * Slicing - a plugin allowing you to...
    ... produce an output program which is made of a subset of the statements of the analyzed program, in the same order as in the analyzed program. The statements are selected according to a user-provided slicing criterion. The output program is guaranteed to be compilable C code, and to have the same behavior as the analyzed program from the point of view of the provided slicing criterion.
    On the note of ACSL, you may also find Deputy interesting; it's a C compiler (gcc-compatible) that allows you to annotate your programs for safety measures. Apparently Linux drivers etc. were also a motivation for this project. I might as well also throw the Clang static analyzer out there; it has the advantage it can check C and objective-C programs (and once support gets better, C++ as well hopefully.) If you also don't know about clang/llvm, then you should educate yourself because they are both awesome (I hope clang is the death of GCC, personally.)

    Also, for large code bases (I'm talking in the 10-20 million line range, like linux or something,) you would be a fool not to have cscope (I've known about/used cscope for years; I mention it because it does not get enough love!)

    Currently I'm writing a garbage collector in C, and I think ACSL and/or deputy could help out a lot hopefully...

    Does anybody else have any interesting tools they've recently found and would like to share?
    operating systems: mac os 10.6, debian 5.0, windows 7
    editor: back to emacs because it's more awesomer!!
    version control: git

    website: http://0xff.ath.cx/~as/

  2. #2
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,412
    Coincidentally, I just found out about slicing today when I saw a poster on JSlice. Apparently the tool was developed by students from my faculty, so the university happily tried to advertise that fact to other students.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  3. #3
    Cat without Hat CornedBee's Avatar
    Join Date
    Apr 2003
    Posts
    8,895
    Quote Originally Posted by Mad_guy View Post
    I might as well also throw the Clang static analyzer out there; it has the advantage it can check C and objective-C programs (and once support gets better, C++ as well hopefully.) If you also don't know about clang/llvm, then you should educate yourself because they are both awesome (I hope clang is the death of GCC, personally.)
    Why, thank you!
    All the buzzt!
    CornedBee

    "There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code."
    - Flon's Law

  4. #4
    Officially An Architect brewbuck's Avatar
    Join Date
    Mar 2007
    Location
    Portland, OR
    Posts
    7,396
    Quote Originally Posted by CornedBee View Post
    Why, thank you!
    Did you work on this project?
    Code:
    //try
    //{
    	if (a) do { f( b); } while(1);
    	else   do { f(!b); } while(1);
    //}

  5. #5
    Cat without Hat CornedBee's Avatar
    Join Date
    Apr 2003
    Posts
    8,895
    I'm actively working on it, yeah. Mostly the C++ parser.
    All the buzzt!
    CornedBee

    "There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code."
    - Flon's Law

  6. #6
    Disrupting the universe Mad_guy's Avatar
    Join Date
    Jun 2005
    Posts
    258
    I'm actively working on it, yeah. Mostly the C++ parser.
    Neato! There's a lot of effort being poured into both llvm and clang right now; it's a very active and well designed project, and I think with some time, clang could easily become the gcc killer (and as I said, I kind of hope it does.) Kudos to you for working on good software like this! (I would contribute to clang, but I'm already actively working on another compiler at the moment, and my C++ isn't so awesome.)
    operating systems: mac os 10.6, debian 5.0, windows 7
    editor: back to emacs because it's more awesomer!!
    version control: git

    website: http://0xff.ath.cx/~as/

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Life before programming tools
    By OnionKnight in forum A Brief History of Cprogramming.com
    Replies: 3
    Last Post: 05-12-2007, 11:29 AM
  2. Debugging tools for windows
    By 0x90 in forum C++ Programming
    Replies: 4
    Last Post: 04-03-2006, 02:21 PM
  3. Getting right version of MS-DOS tools
    By bennyandthejets in forum Windows Programming
    Replies: 8
    Last Post: 10-25-2004, 07:29 PM
  4. Interesting number theory problem
    By Zach L. in forum A Brief History of Cprogramming.com
    Replies: 4
    Last Post: 09-20-2003, 07:45 AM
  5. Code coverage tools
    By bswole in forum Linux Programming
    Replies: 2
    Last Post: 03-20-2002, 08:16 AM