#Thrust Programming Language

1 messages · Page 1 of 1 (latest)

night needle
#

Thrust Programming Language

The Thrush Programming Language. A programming language dedicated to creating maintainable and modular software.

Features

  • High level abstraction.
  • Non-explicit cast for primitive types.
  • Strongly statically typed.
  • Strongly in OOP paradigm.
  • Automatic memory management.
  • Partial memory safety.
  • Ahead of time compilation.
  • Faster compilation times.
  • Faster as C.
  • Compiled to machine code.

Shiny Features

  • Support for quantum programming for quantum machines using qubits.

Powered by LLVM & Quantum Q# Backend

  • With LLVM as the main code generator, GCC planned for the future makes it possible for Thrush to compete with languages like Rust, Swift, Odin, and Jai in its league in the bright future.
  • The Quantum Q# backend is used only when the quantum programming language is enabled; compile or interpret it for quantum machines using qubits.

Compilation steps

With the compiler (thrushc)...

thrushc --executable hello.th -o hello && ./output/hello

With the package manager... (Coming soon)

thorium run
public @extern("printf") fn print(fmt :: str, ...): i32;

fn main() {

    for var i: i64 = 0; a < 100; a++; {

        print("%ld %s", i, "Hello World!")
  
    } 

}

https://github.com/thrustlang

GitHub

A general-purpose, statically typed systems programming language for writing verbose, accurate, and fast code. - The Thrust Programming Language

night needle
raven crater
#

gc?

#

arc?

unborn scarab
night needle
#

También libera de forma recursiva cualquier tipo dentro de una estructura que sea un puntero del heap o estructura. Todo lo demás y la mayoría son del stack, no hay que preocuparse.

Manejo el heap de manera local, ya que llvm ir se reduce a solamente funciones.

Básicamente se recrea el funcionamiento del stack pero para heap.

empty wedge
#

@night needle como es eso bien de la compilación utilizando Q# porque no entiendo muy bien como traducirías un programa en un lenguaje como este a uno de uno de un circuito cuantico, ademas de poder hacer algo como eso no convendria compilarlo a openwasm y utilizar algo como qe-compiler?

https://github.com/openqasm/qe-compiler

GitHub

An MLIR based compiler dynamic circuit compiler for real-time control systems supporting OpenQASM 3 - openqasm/qe-compiler

night needle
#

QIR es de QIR Alliance, que es patrocinada por Nvidia, Microsoft y más empresas

night needle
#

Ahora es emularlo en computadores normales, ya que eso es de producción, real con circuitos cúanticos

night needle
#

No he buscado información sobre ello

night needle
empty wedge
#

Ahi te entendi mejor, quiza estaria bueno modificarlo en el readme de backend Q# a QIR directamente, creo que asi como esta escrito queda medio confuso

night needle
#

Hasta esta publicación debo actualizar 🤣

empty wedge
#

jaja perdon

#

igual fijate que me parece que lo mas jodido igual mas que como lo compilas va a ser como lo interpretas como bien decias

#

no se si hay mucho que leer de eso porque simplemente no se si hay un grupo que ya lo haya estudiado

#

porque si lo que esperas es poder hacer un codigo que sea analogico a una arquitectura comun y una cuantico es un laburazo

night needle
#

Para adaptarlo de forma general hay que seguir reglas generales de código cuántico, las mismas que sigue Q# en su backend y ya esta. Se emite el IR y se interpreta o bueno esta clase de bytecode runner

#

Funciona como un VM

empty wedge
#

Sisi, pero tipo entonces no esperas optimizar código en la compilación ni nada parecido, lo llevas a qir y listo?

night needle
empty wedge
#

Ahhhhh eso está interesante

#

Lo voy a mirar

#

Gracias

night needle
night needle
#

Thrust Programming Language

#

Cambie de nombre porque este proyecto va para largo, y que Thrush no es buen nombre para el futuro, ya que en inglés a veces puede referirse a una enfermedad entonces link actualizado