[llvm-dev] General question - better descriped.

Steven Truppe via llvm-dev llvm-dev at lists.llvm.org
Thu Jun 20 12:32:04 PDT 2019


I explain it in more detail:

I'm writing an application that works completely with nodes (think about
a node like a function with parameters and in and output slots. there
will be type-nodes like vec3f, int, float, etc. and operation nodes (the
functions that are predefined). So as far as i know i need clang to
parse and create an AST from the nodes (which have access to the
predefined functions and variables). The nodes that are create with a
GUI and the user can connect those nodes to create higher order
functions. (if you know houdini you might know the system i'm trying to
create).

And the code should be C++ (for the predefined functions and the
operator nodes). So no own language just parse and execute in realtime a
self created AST (with predefined functions that must be available for
the code that every operator node has included. More like a graphical
interface to let the use create it's own AST and then run it in realtime
(so the user don' t need programming skills and can create smaller
applications only with the graphical interface.


I was not able to find a clang book, only for llvm and they don't go
into much detail when it comes to clang.


I hope someone here can point me in the right direction (name of a clang
book or links to the documentation that i need to get things done.


best regards.

Steven Truppe




On 20.06.19 20:52, mayuyu.io wrote:
> As far as I understand it you are basically trying to create your own domain specific language for scientific computation?
> Clang seems to kinda match what you need but I don’t think it’s able to support function definition in another function which sounds like something you’d need. Your best approach would be using some lexer/parser generate tool to code your own compiler frontend (GREAT DEAL OF WORK) or hack up libClang a bit. Alternatively there are a bunch of readily usable LLVM based languages like Halide that are designed for generating efficient tensor computation code so changing your workflow a bit to re-use those libraries/frameworks is probably a better idea, in my humble opinion. Unless I’m missing something obvious here.
>
> Zhang
>
>> 在 2019年6月20日,19:01,Steven Truppe via llvm-dev <llvm-dev at lists.llvm.org> 写道:
>>
>> Hi everyone,
>>
>> i'm currently trying to write an application that let you "code" with
>> nodes. (think of a node like a function that has input and output slots
>> that can get connected).
>>
>>
>> I need a few functions that are predefined and can be used in the code
>> (so i want to parse and create an AST for those functions/variables and
>> then i need to parse C++ code (one node has c++ code that should be
>> executed. So in the end i've nodes that are for types, then one for
>> operations (the functions).
>>
>>
>> The code from the nodes must be able to run the code from it's node with
>> the parameters i pass to the node's slots or in the node itself and i
>> need it to be able to create own functions that must be available in the
>> code of the nodes.
>>
>>
>> so for example i've a typenode that declares and defines variables, for
>> example vec3f for 3d vector types.
>>
>>
>> Now my question would be: Where should i start reading or is there a
>> special article how to achive what i want ?? As far as i know i need
>> clang to parse my own functions so he knows about my types and my
>> functions (one for each operation nodes and the structure declarations).
>> this creates one AST for each type/function). then i need to build an
>> AST for my own nodes that must be interpreted and compiled with llvm and
>> then run the code at runtime.
>>
>>
>> I hope one of you guys can point me in the right direction because i'm
>> completely new to clang and llvm (but i found a book about "learning
>> llvm basic libaries that helps a bit but they do not talk much about
>> clang (so i only know the basics about llvm and have not much of a clue
>> about clang.
>>
>>
>> best regards,
>>
>> Steven Truppe
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
>


More information about the llvm-dev mailing list