C++ programming-language

Open-source C++ projects categorized as programming-language

Top 23 C++ programming-language Projects

  • carbon-lang

    Carbon Language's main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README)

  • Project mention: Gio UI – Cross-Platform GUI for Go | news.ycombinator.com | 2024-05-18

    It's even a core point for Carbon, their hopeful C++ replacement

    Under language goals on their readme,

    > We also have explicit non-goals for Carbon, notably including:

    > * A stable application binary interface (ABI) for the entire language and library

    > * Perfect backwards or forwards compatibility

    There's also this blurb

    > Our goals are focused on migration from one version of Carbon to the next rather than compatibility between them. This is rooted in our experience with evolving software over time more generally and a live-at-head model. Any transition, whether based on backward compatibility or a migration plan, will require some manual intervention despite our best efforts, due to Hyrum's Law, and so we should acknowledge that upgrades require active migrations.

    https://github.com/carbon-language/carbon-lang/blob/trunk/do...

  • solidity

    Solidity, the Smart Contract Programming Language

  • Project mention: How to Register a Smart Contract to Mode SFS with Thirdweb | dev.to | 2024-04-25

    Have a basic understanding of Solidity.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • supercollider

    An audio server, programming language, and IDE for sound synthesis and algorithmic composition.

  • Project mention: Harnessing Screams with Tidal Looper | dev.to | 2024-05-12

    Since then, I've been working more and more with TidalCycles. TidalCycles is an open-source live coding framework for creating patterns written in Haskell. TidalCycles uses SuperCollider on the backend, another language I've been using for live coding. Recently, I started using Tidal Looper for live vocal processing. This blog post will walk you through what you need to get started with vocal looping with Tidal Looper.

  • luau

    A fast, small, safe, gradually typed embeddable scripting language derived from Lua

  • Project mention: Building a baseline JIT for Lua automatically | news.ycombinator.com | 2024-01-11

    As far as I can tell, they aren't.

    http://lua-users.org/wiki/SandBoxes

    There is a lot of information there, but it doesn't handle resource exhaustion, execution time limits or give any guarantees. It does indicate that it's possible, and has a decent example of the most restrictive setup, which is a good start. But I would for example compare it with Luau's SECURITY.md.

    From https://github.com/luau-lang/luau/blob/master/SECURITY.md:

    > Luau provides a safe sandbox that scripts can not escape from, short of vulnerabilities in custom C functions exposed by the host. This includes the virtual machine and builtin libraries. Notably this currently does not include the work-in-progress native code generation facilities.

    > Any source code can not result in memory safety errors or crashes during its compilation or execution. Violations of memory safety are considered vulnerabilities.

    > Note that Luau does not provide termination guarantees - some code may exhaust CPU or RAM resources on the system during compilation or execution.

    So, even luau will have trouble with untrusted code, but it specifies exactly what happens and so on. I think that's fair enough.

  • jakt

    The Jakt Programming Language

  • Project mention: The Jakt Programming Language | news.ycombinator.com | 2024-01-29
  • ispc

    Intel® Implicit SPMD Program Compiler

  • Project mention: Implementing a GPU's Programming Model on a CPU | news.ycombinator.com | 2023-10-14

    This so-called GPU programming model has existed many decades before the appearance of the first GPUs, but at that time the compilers were not so good like the CUDA compilers, so the burden for a programmer was greater.

    As another poster has already mentioned, there exists a compiler for CPUs which has been inspired by CUDA and which has been available for many years: ISPC (Implicit SPMD Program Compiler), at https://github.com/ispc/ispc .

    NVIDIA has the very annoying habit of using a lot of terms that are different from those that have been previously used in computer science for decades. The worst is that NVIDIA has not invented new words, but they have frequently reused words that have been widely used with other meanings.

    SIMT (Single-Instruction Multiple Thread) is not the worst term coined by NVIDIA, but there was no need for yet another acronym. For instance they could have used SPMD (Single Program, Multiple Data Stream), which dates from 1988, two decades before CUDA.

    Moreover, SIMT is the same thing that was called "array of processes" by C.A.R. Hoare in August 1978 (in "Communicating Sequential Processes"), or "replicated parallel" by Occam in 1985 or "PARALLEL DO" by "OpenMP Fortran" in 1997-10 or "parallel for" by "OpenMP C and C++" in 1998-10.

    The only (but extremely important) innovation brought by CUDA is that the compiler is smart enough so that the programmer does not need to know the structure of the processor, i.e. how many cores it has and how many SIMD lanes has each core. The CUDA compiler distributes automatically the work over the available SIMD lanes and available cores and in most cases the programmer does not care whether two executions of the function that must be executed for each data item are done on two different cores or on two different SIMD lanes of the same core.

  • Beef

    Beef Programming Language (by beefytech)

  • Project mention: Odin Programming Language | news.ycombinator.com | 2024-01-01
  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • fut

    Fusion programming language. Transpiling to C, C++, C#, D, Java, JavaScript, Python, Swift, TypeScript and OpenCL C.

  • Project mention: Bare minimum atw-style K interpreter for learning purposes | news.ycombinator.com | 2024-01-17

    I've just learned that Ć is no longer a viable name (thankfully). Now it's Fusion Programming Language (or fut?) https://github.com/fusionlanguage/fut

  • fetlang

    Fetish-themed programming language

  • Peregrine

    A blazing fast language for the blazing fast world(WIP)

  • jank

    A Clojure dialect hosted on LLVM with native C++ interop

  • Project mention: Jank programming language – Clojure/LLVM/C++ | news.ycombinator.com | 2024-05-09
  • pocketpy

    Open Source Python Interpreter in 1 File for Game Scripting

  • Project mention: How to create an embeddable python for multiple platforms | /r/cpp_questions | 2023-06-26
  • Z-Sharp

    Custom programming interpreter for ZSharp (Z#), a custom game programming language I made

  • Ark

    ArkScript is a small, fast, functional and scripting language for C++ projects

  • swapview-rosetta

    Print swap usage per process. Implemented in various programming languages

  • cparse

    A C++ configurable Expression Parser. Useful as a Calculator or for helping you write your own Programming Language

  • Pluto

    A superset of Lua 5.4 with a focus on general-purpose programming. (by PlutoLang)

  • Project mention: Pluto, a Modern Lua Dialect | news.ycombinator.com | 2023-12-27

    I looked into the jump table optimization. The normal Lua version is here[1] and it uses the opcode as a index into a static array to jump to the label. The “faster” Pluto version is here[2] and it just uses a switch statement on the labels. I would naively assume that these would compile to the same code because the lua version is just manually creating the jump table and the pluto version is leaving it to the compiler. How could the compiler optimize the switch so that would outperform the manual jump table (by a decent margin)?

    [1] https://github.com/PlutoLang/Pluto/blob/main/src/ljumptabgcc...

    [2] https://github.com/PlutoLang/Pluto/blob/main/src/ljumptab.h

  • xl

    A minimalist, general-purpose programming language based on meta-programming and parse tree rewrites

  • Project mention: XL: An Extensible Programming Language | news.ycombinator.com | 2024-02-21

    From what I can read the author got really unlucky with some kind of radical API changes. Maybe at that time the LLVM team was a bit less serious with deprecations ?

    I use LLVM since v9, nowadays I'm stuck on v15 (that's not because of LLVM btw).

    Between the two versions there's been a radical change too, i.e "opaque pointers", but the transition was rather smooth as we were provided, for a long time, the two versions of the functions affected by the change. Maybe the LLVM team got more serious since the author experienced the said difficulties ?

    Other thing I note is that the author uses the CPP API. I use the C one which exposes only a high-level subset of the CPP one. This encourages a saner use of LLVM, a more concrete separation between the front-end and the mid-end, although sometimes there are limitations.

    A simple example of what encourages the C API, especially since opaque ptrs are added, is not to rely on LLVM to retrieve the IR type of an IR value. That should always be done using the AST, eg with an `.ir` field in your nodes.

    Another one I remark, after a brief overview of LLVM-CRAP, is that the author had to change the internal data structure used, depending on the LLVM version [0]. Using the C API that would never had happened. The C API essentially allows to create block refs, instructions refs, value refs, type refs, contexts. Then you choose the containers you want to use to hold them. No need to switch to another stdcpp one, even if internally LLVM does so.

    [0]: https://github.com/c3d/xl/blob/master/src/llvm-crap.cpp#L265

  • gdl

    GDL - GNU Data Language

  • miniscript

    source code of both C# and C++ implementations of the MiniScript scripting language

  • Project mention: MiniScript Ports | dev.to | 2024-02-07

    There are two official reference implementations of MiniScript: one in C#, and one in C++. Both are actively maintained, and available on GitHub.

  • elena-lang

    ELENA is a general-purpose language with late binding. It is multi-paradigm, combining features of functional and object-oriented programming. Rich set of tools are provided to deal with message dispatching : multi-methods, message qualifying, generic message handlers, run-time interfaces

  • LensorCompilerCollection

    A compiler we made just for fun :^)

  • Project mention: Looking for some compiler development resources | /r/ProgrammingLanguages | 2023-05-26

    See https://github.com/LensPlaysGames/Intercept/tree/machine_code/docs

  • empirical-lang

    A language for time-series analysis

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020).

C++ programming-language related posts

Index

What are some of the best open-source programming-language projects in C++? This list will help you:

Project Stars
1 carbon-lang 32,259
2 solidity 22,446
3 supercollider 5,236
4 luau 3,667
5 jakt 2,751
6 ispc 2,412
7 Beef 2,371
8 fut 1,692
9 fetlang 1,476
10 Peregrine 1,472
11 jank 1,447
12 pocketpy 1,353
13 Z-Sharp 651
14 Ark 557
15 swapview-rosetta 491
16 cparse 329
17 Pluto 318
18 xl 266
19 gdl 266
20 miniscript 243
21 elena-lang 224
22 LensorCompilerCollection 185
23 empirical-lang 167

Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com