Skip to content

Commit ccdf5dd

Browse files
committed
update
1 parent 60bfd58 commit ccdf5dd

File tree

2 files changed

+68
-49
lines changed

2 files changed

+68
-49
lines changed

_data/projects.yml

Lines changed: 57 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,49 @@
1-
- name: "C++ Language Interoperability Layer"
1+
- name: "Xeus-CPP - a Jupyter Kernel for C++"
22
description: |
3-
In the CppInterOp (previously LibInterOp) project, we explore the key aspects
4-
of language interoperability with C++ using an automated binding approach,
5-
focusing on automatic binding to and from Python, but also applicable to other
6-
languages like D and Julia.
3+
Xeus-CPP is a product of OAC-1931408 in collaboration with the QuantStack
4+
company. It is a Jupyter kernel for C++ based on the native implementation
5+
of the Jupyter protocol xeus. It is supports the Wasm version of Jupyter
6+
(JupyterLite). It is a generalization of the Xeus-Clang-Repl (a Jupyter
7+
plugin supporting C++ development based on ClangRepl).
78
8-
category: "Language Interoperability"
9+
With Xeus-CPP, you can write and execute C++ code interactively, seeing
10+
the results immediately. This REPL nature allows you to iterate quickly
11+
without the overhead of compiling and running separate C++ programs.
912
link: |
10-
https://compiler-research.org/libinterop/
13+
https://github.com/compiler-research/xeus-cpp
1114
12-
- name: "Clad - Clang Plugin"
15+
- name: "Clang-REPL - an Interactive C++ Interpreter"
1316
description: |
14-
Clad is a plugin for the Clang compiler that enables automatic differentiation
15-
capabilities for C/C++ codebases. It is a valuable tool for developers seeking
16-
to streamline complex mathematical computations and optimize their codebase
17-
efficiently.
17+
Clang-Repl is an interactive C++ interpreter that allows for incremental
18+
compilation. It supports interactive programming for C++ in a
19+
read-evaluate-print-loop (REPL) style.
1820
19-
Clad facilitates the generation of derivatives, gradients, Hessians, and
20-
Jacobians (in forward and/or reverse mode), enhancing the efficiency and
21-
versatility of numerical computations.
21+
Clang-Repl is suitable for exploratory programming and in places where
22+
time to insight is important. Clang-Repl is a project inspired by the work
23+
in Cling, a LLVM-based C/C++ interpreter developed by the field of high
24+
energy physics and used by the scientific data analysis framework ROOT.
25+
Clang-Repl allows to move parts of Cling upstream, making them useful and
26+
available to a broader audience.
27+
link: |
28+
https://clang.llvm.org/docs/ClangRepl.html
2229
23-
Clad not only supports partial and higher-order derivatives but also
24-
integrates seamlessly with frameworks like ROOT, providing a comprehensive
25-
solution for automatic differentiation needs in C++ applications.
26-
category: "Automatic Differentiation"
30+
- name: "CppInterOp - a C++ Language Interoperability Layer"
31+
description: |
32+
CppInterOp (previously LibInterOp) is a product of OAC-1931408 and exposes
33+
APIs from Clang and LLVM in a mostly backward compatibe way. The APIs
34+
support downstream tools that utilize interactive C++ by using the
35+
compiler as a service. That is, embed Clang and LLVM as a libraries in
36+
their codebases.
37+
38+
The APIs are designed to be minimalistic and aid non-trivial tasks such as
39+
language interoperability on the fly. In such scenarios CppInterOp can be
40+
used to provide the necessary introspection information to the other side
41+
helping the language cross talk. The package makes it easy to deploy as it
42+
ships Clang as a service without any dependencies.
2743
link: |
28-
https://compiler-research.org/clad/
44+
https://github.com/compiler-research/CppInterOp
2945
30-
- name: "Cling - C++ Interpreter"
46+
- name: "Cling - an Interactive C++ Interpreter"
3147
description: |
3248
Cling is an interactive C++ interpreter that operates on top of the Clang and
3349
LLVM libraries, utilizing LLVM's Just-In-Time (JIT) compiler for fast and
@@ -41,26 +57,28 @@
4157
By providing support for advanced C++ features like templates, lambdas, and
4258
virtual inheritance, Cling empowers developers in exploratory programming with
4359
interactive, dynamic language interoperability and rapid prototyping.
44-
category: "Interactive C++"
4560
link: |
46-
https://rawgit.com/root-project/cling/master/www/index.html
61+
https://github.com/root-project/cling
4762
48-
- name: "Interactive C++ (Cling Use Case)"
63+
- name: "Clad - an Automatic Differentiation Tool"
4964
description: |
50-
Researchers heavily rely on tools that minimize the "time to insight" to
51-
enhance productivity. However, the escalating data volumes and computational
52-
demands necessitate a constant emphasis on optimizing code performance. This
53-
is where interactive capabilities of tools like Cling are useful, enabling
54-
navigation through a diverse set of programming languages, development tools,
55-
and hardware.
56-
category: "Interactive C++"
57-
link: |
58-
https://compiler-research.org/interactive_cpp
65+
Clad is a plugin for the Clang compiler that enables automatic differentiation
66+
capabilities for C/C++ codebases. It is a valuable tool for developers seeking
67+
to streamline complex mathematical computations and optimize their codebase
68+
efficiently.
5969
60-
- name: "Incremental Compilation Support in Clang (CaaS) Project"
61-
description: |
62-
Incremental compilation aims to support clients that need to keep a single
63-
compiler instance active across multiple compile requests.
64-
category: "Compiler-As-A-Service"
70+
Clad facilitates the generation of derivatives, gradients, Hessians, and
71+
Jacobians (in forward and/or reverse mode), enhancing the efficiency and
72+
versatility of numerical computations.
73+
74+
Clad not only supports partial and higher-order derivatives but also
75+
integrates seamlessly with frameworks like ROOT, providing a comprehensive
76+
solution for automatic differentiation needs in C++ applications.
6577
link: |
66-
https://compiler-research.org/caas/
78+
https://github.com/vgvassilev/clad
79+
80+
81+
82+
83+
84+

_pages/research.md

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ permalink: /research/
88

99
Following are the areas of research that Compiler Research Group is focused on:
1010

11-
### Automatic Differentiation
11+
#### [Automatic Differentiation]
1212

1313
Automatic Differentiation (AD) is a useful technique in scientific research
1414
fields like machine learning and computational physics. AD enables the
@@ -26,9 +26,9 @@ work rather than getting bogged down in manual differentiation tasks. This
2626
automation not only accelerates the development process but also ensures that
2727
computations are error-free and consistent.
2828

29-
### Compiler-As-A-Service
29+
#### [Compiler-As-A-Service]
3030

31-
[Compiler as a Service (CaaS)] is an evolving technology that redefines the
31+
Compiler as a Service (CaaS) is an evolving technology that redefines the
3232
traditional approach to compilers by providing a service-oriented
3333
architecture. Instead of treating the compiler as a black box, the CaaS
3434
approach helps open up the functionality to make it available as APIs. This
@@ -41,7 +41,7 @@ and conversion from one programming language to another (e.g., C++ and
4141
Python).
4242

4343

44-
### Incremental C++
44+
#### [Incremental C++]
4545

4646
Despite its high performance capabilities, C++ is not the first programming
4747
language that comes to mind for rapidly developing robust applications, mainly
@@ -53,7 +53,7 @@ language. The goal is to enable dynamic interoperability, rapid prototyping,
5353
and exploratory programming, which are essential for data science and other
5454
scientific applications.
5555

56-
Following are some practical applications of a "[C++ Interpreter]," so to speak:
56+
Following are some practical applications of a "C++ Interpreter," so to speak:
5757

5858
- In Data Science: Interactive probing of data and interfaces, making complex
5959
libraries and data more accessible to users.
@@ -68,9 +68,9 @@ Following are some practical applications of a "[C++ Interpreter]," so to speak:
6868
Notebooks], providing a swift prototyping and learning experience for C++
6969
users.
7070

71-
### Language Interoperability
71+
#### [Language Interoperability]
7272

73-
[Language interoperability] helps programmers get the best of both worlds, with
73+
Language interoperability helps programmers get the best of both worlds, with
7474
the ability to work with a high-performance language (e.g., C++), and at the
7575
same time, take advantage of a more interactive one (e.g., Python), while
7676
helping them identify each other's entities (like variables and classes) for
@@ -90,6 +90,7 @@ only improves performance but also simplifies code development and debugging
9090
processes, offering a more efficient alternative to static binding methods.
9191

9292

93+
[Automatic Differentiation ↗]: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2072r0.pdf
9394

9495
[Interactive C++]: https://blog.llvm.org/posts/2020-12-21-interactive-cpp-for-data-science/
9596

@@ -99,12 +100,12 @@ processes, offering a more efficient alternative to static binding methods.
99100

100101
[Clad plugin for the Clang]: https://compiler-research.org/clad/
101102

102-
[Language interoperability]: https://compiler-research.org/libinterop/
103+
[Language Interoperability ↗]: https://cppinterop.readthedocs.io/en/latest/index.html
103104

104105
[Cling]: https://rawgit.com/root-project/cling/master/www/index.html
105106

106107
[Clang-REPL]: https://clang.llvm.org/docs/ClangRepl.html
107108

108-
[Compiler as a Service (CaaS)]: https://compiler-research.org/caas/
109+
[Compiler-As-A-Service ]: https://compiler-research.org/caas/
109110

110-
[C++ Interpreter]: https://compiler-research.org/interactive_cpp
111+
[Incremental C++ ]: https://compiler-research.org/interactive_cpp

0 commit comments

Comments
 (0)