Seeking contributors for psyche-c

Fernando <>
Wed, 9 Nov 2016 07:58:11 -0800 (PST)

          From comp.compilers

Related articles
Seeking contributors for psyche-c (Fernando) (2016-11-09)
| List of all articles for this month |

From: Fernando <>
Newsgroups: comp.compilers
Date: Wed, 9 Nov 2016 07:58:11 -0800 (PST)
Organization: Compilers Central
Injection-Info:; posting-host=""; logging-data="99029"; mail-complaints-to=""
Keywords: C, tools, available
Posted-Date: 09 Nov 2016 12:28:55 EST

Dear guys,

I would like to announce an open-source tool that we are developing: psyche-c.
It completes missing parts of C programs, so that you can have a fully
compilable program. In other words, it does type inference and stub generation
for missing functions, performing compilation of incomplete C code. The tool
has an online interface, which you can use:

For instance, if you feed it with this program, taken from Sedgewick's book:

void TCdfsR(Graph G, Edge e) {
    link t;
    G->tc[e.v][e.w] = 1;
    for (t = G->adj[e.w]; t != NULL; t = t->next) if (G->tc[e.v][t->v] == 0)
    TCdfsR(G, EDGE(e.v, t->v));

Then psyche-c will give you back these declarations:

typedef struct link {int v;struct link* next;}* link ;
typedef struct Graph {int** tc;struct link** adj;}* Graph ;
typedef struct Edge {int v;int w;} Edge ;
struct Edge EDGE (int,int) ;

Notice that it reconstructs recursive types that are pretty complicated. We
have used psyche-c to reconstruct missing code in the GNU Core Util programs
and in all the Sedgewick's examples (on graphs), for instance. Psyche-c is
good for code completion, as a helper to debug programs, and even to reduce
compilation time. It uses a unification based type-inference engine, and has a
few tricks to parse C, even when missing declarations. If you would like to
contribute, or just know more about the project, the code is available at



Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.