mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-27 22:02:33 +01:00
This takes #175 and publishes it as interop goals. I've made a few small editorial changes, but the main addition is the "Offer equivalent support for languages other than C++" non-goal which I thought may be useful (in particular, it can be used to clarify why this directory is "interoperability" and not "interoperability_cpp").
33 lines
915 B
Markdown
33 lines
915 B
Markdown
# Bidirectional interoperability with C/C++
|
|
|
|
<!--
|
|
Part of the Carbon Language project, under the Apache License v2.0 with LLVM
|
|
Exceptions. See /LICENSE for license information.
|
|
SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
-->
|
|
|
|
<!-- toc -->
|
|
|
|
## Table of contents
|
|
|
|
- [Philsophy and goals](#philsophy-and-goals)
|
|
- [Overview](#overview)
|
|
|
|
<!-- tocstop -->
|
|
|
|
## Philsophy and goals
|
|
|
|
The C++ interoperability layer of Carbon allows a subset of C++ APIs to be
|
|
accessed from Carbon code, and similarly a subset of Carbon APIs to be accessed
|
|
from C++ code. This requires expressing one language as a subset of the other.
|
|
Bridge code may be needed to map some APIs into the relevant subset, but the
|
|
constraints on expressivity should be loose enough to keep the amount of such
|
|
bridge code sustainable.
|
|
|
|
The [interoperability philosophy and goals](philosophy_and_goals.md) provide
|
|
more detail.
|
|
|
|
## Overview
|
|
|
|
TODO
|