C Board  

Go Back   C Board > Community Boards > General Discussions

Reply
 
LinkBack Thread Tools Display Modes
Old 03-07-2009, 03:18 PM   #1
Disrupting the universe
 
Mad_guy's Avatar
 
Join Date: Jun 2005
Posts: 243
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...
Quote:
... 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://www.nijoruj.org/~as/
Mad_guy is offline   Reply With Quote
Old 03-07-2009, 03:31 PM   #2
C++ Witch
 
laserlight's Avatar
 
Join Date: Oct 2003
Location: Singapore
Posts: 11,324
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.
__________________
C + C++ Compiler: MinGW port of GCC
Build + Version Control System: SCons + Bazaar

Look up a C/C++ Reference and learn How To Ask Questions The Smart Way
laserlight is online now   Reply With Quote
Old 03-08-2009, 04:18 AM   #3
Cat without Hat
 
CornedBee's Avatar
 
Join Date: Apr 2003
Posts: 8,492
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
CornedBee is offline   Reply With Quote
Old 03-08-2009, 01:21 PM   #4
Senior software engineer
 
brewbuck's Avatar
 
Join Date: Mar 2007
Location: Portland, OR
Posts: 5,762
Quote:
Originally Posted by CornedBee View Post
Why, thank you!
Did you work on this project?
__________________
"Congratulations on your purchase. To begin using your quantum computer, set the power switch to both off and on simultaneously." -- raftpeople@slashdot
brewbuck is online now   Reply With Quote
Old 03-08-2009, 02:25 PM   #5
Cat without Hat
 
CornedBee's Avatar
 
Join Date: Apr 2003
Posts: 8,492
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
CornedBee is offline   Reply With Quote
Old 03-10-2009, 06:07 PM   #6
Disrupting the universe
 
Mad_guy's Avatar
 
Join Date: Jun 2005
Posts: 243
Quote:
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://www.nijoruj.org/~as/
Mad_guy is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Forum Jump

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


All times are GMT -6. The time now is 09:31 AM.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22