LLVM Compiler Overview version 2

Good day, everyone.

I’m starting this thread to get up to date on the latest developments in the Xojo compiler.

I would like to validate the comparison.

Suggestions and opinions are welcome.

Fase Xojo C++ Swift C# Python
Lexer Yes Yes Yes Yes Yes
Parser Yes Yes Yes Yes Yes
Semantic Analyzer Yes Yes Yes Yes Limited
IR LLVM IR LLVM IR/GIMPLE/etc. LLVM IR CIL / MSIL Bytecode
Optimizer LLVM Very advanced / CLANG+GCC LLVM LLVM Very limited
Ahead-of-Time Machine Code Yes Yes Yes Partial No
Front end quality 9/10 10 10 9 8
Level Level A Level A Level A Lebel B Level C
Compilation result They do not need a virtual machine to run. They do not need a virtual machine to run. They do not need a virtual machine to run. They generate a portable IR. Interpreted Bytecode
Comments C#, Java, JavaScript (V8), are at the same level.

Beside “Do not use Python”, what is the conclusion ?

My personal opinion.

The C language has the best compiler on the market. XOJO performs reasonably well compared to other A-level languages. Its compiler is good.

Python isn’t bad; it depends on what you’re using it for. If you’re looking for a native compiler, you can rule out Python.

Everyone know Ruby is the best :laughing:

Note:

I forgot to add Kotlin to the table. And Ruby…

:+1:

Actually I would be interested in those stats

1 Like

Ruby is not generally recognized for cutting-edge compiler technology. Historically, it has relied on an interpreter-based execution model, with later performance improvements introduced through JIT compilation techniques.

@Jose_Fernandez_del_Valle
My Ruby comment was sprinkled with some humor :grin:

1 Like

Add two more lines. Which I consider important.

Fase Xojo C++ Swift C# Python
Lexer Yes Yes Yes Yes Yes
Parser Yes Yes Yes Yes Yes
Semantic Analyzer Yes Yes Yes Yes Limited
IR LLVM IR (Clang - LLVM IR) / (GCC - GIMPLE) LLVM IR CIL / MSIL CPython Bytecode
Optimizer LLVM Very advanced / CLANG+GCC LLVM Roslyn + RyuJIT Very limited
Ahead-of-Time Machine Code Yes Yes Yes Partial No
AOT vs JIT AOT AOT AOT JIT + AOT Partial Interpreter
SSA (Static Single Assignment) YES YES YES YES NO
Front end quality 9/10 10 10 9 8
Level Level A Level A Level A Lebel B Level C
Compilation result They do not need a virtual machine to run. They do not need a virtual machine to run. They do not need a virtual machine to run. They generate a portable IR. Interpreted Bytecode
Comments C#, Java, JavaScript (V8), are at the same level.

My comparison shows that Xojo is much closer to C++ and Swift than is commonly believed, because it shares the same LLVM infrastructure for optimization and native code generation.