C++ Logo

sg7

Advanced search

Re: CodeReckons CppMeta compiler

From: Jean-Baptiste Vallon Hoarau <jeanbaptiste.vallon_at_[hidden]>
Date: Wed, 21 Feb 2024 21:45:34 +0100
Hi Dominic,

Thank you for your interest. Yes we have implemented a symbolic
differentiation algorithm that we're planning to talk about in an upcoming
article, which should be pretty soon. It's able to differentiate operators
and call expressions, we're using template specializations to declare the
differentiation of a given function, so that the set of differentiable
functions is open.


> Dear Jean-Baptiste,
>
> I follow the SG7 mailing list, and I saw that you mentioned 'symbolic
> differentiation (expressions traversal and synthesis)'. I have worked for a
> long time on automatic differentiation and I had proposed a feature to SG7
> to facilitate code transformations suitable for differentiation. I have yet
> to find a meta-programming proposal that can solve the (seemingly trivial)
> expression analysis needed. I was wondering if the work of CodeReckons
> CppMeta compiler might offer the necessary tools?
>
> Attached is the paper I circulated on SG7 a few years ago. However, it was
> presented at around the same time as Andrew Sutton's work so it was rather
> overshadowed. I would be very grateful for any thoughts on it.
>
> Regards,
> Dominic
>


Le mar. 20 févr. 2024 à 20:51, Dominic Jones <dominic.jones_at_[hidden]> a
écrit :

> Dear Jean-Baptiste,
>
> I follow the SG7 mailing list, and I saw that you mentioned 'symbolic
> differentiation (expressions traversal and synthesis)'. I have worked for a
> long time on automatic differentiation and I had proposed a feature to SG7
> to facilitate code transformations suitable for differentiation. I have yet
> to find a meta-programming proposal that can solve the (seemingly trivial)
> expression analysis needed. I was wondering if the work of CodeReckons
> CppMeta compiler might offer the necessary tools?
>
> Attached is the paper I circulated on SG7 a few years ago. However, it was
> presented at around the same time as Andrew Sutton's work so it was rather
> overshadowed. I would be very grateful for any thoughts on it.
>
> Regards,
> Dominic
>
>
> *Sent:* Saturday, February 17, 2024 at 9:03 PM
> *From:* "Jean-Baptiste Vallon Hoarau via SG7" <sg7_at_[hidden]>
> *To:* sg7_at_[hidden]
> *Cc:* "Jean-Baptiste Vallon Hoarau" <jeanbaptiste.vallon_at_[hidden]>
> *Subject:* Re: [SG7] CodeReckons CppMeta compiler
> Hello everyone,
>
> The differences can be quickly summarized as follows :
>
> - the reflection API is typed
> - the reflection domain includes statements and expressions (so we're able
> to traverse a function's body, for example)
> - anything that can be reflected, can be constructed/injected. so we can
> create expressions, statements, or declarations. Our use cases
> cover operators generation/interface generation (member
> functions synthesis), symbolic differentiation (expressions traversal and
> synthesis), string matching (statements synthesis), and static analysis
> (statements/expressions traversal, inspection of functions parameters),
> among other things.
> - we can emit diagnostics at compile-time, and transform value of builtin
> types to text (we've also constexpr-ised std::format to help emit
> diagnostics)
>
> This is of course a very brief summary of the differences, and they will
> hopefully be better demonstrated by the articles.
>
> -Jean-Baptiste
>

Received on 2024-02-21 20:45:48