Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como c++

Comparativa entre Odin y C

En está ocasión haremos una breve comparativa entre dos lenguajes de programación: C y Odin . C , un lenguaje de programación estructurado y "multi propósito" que se niega a morir versus Odin , un nuevo lenguaje de programación que toma lo mejor de lenguajes como C, C++ o Java para resolver los grandes problemas que se dejaron pendientes (como el manejo de memoria, entre otros). Por ejemplo, Odin fue diseñado para evitar las complejidades y los problemas potenciales de las macros (como depuración difícil o errores de precedencia). En su lugar, confía en un sistema de tipos fuerte y en la capacidad del compilador para optimizar funciones inline, ofreciendo un enfoque más limpio y seguro. Veamos un ejemplo de macro (sustituciones textuales realizadas por el preprocesador antes de la compilación) en C . main.c 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include<stdio.h> // Definimos la MACRO para determinar si un número es mayor a 100 #def...

Rust: un vistazo más (3)

En Rust existe una propiedad llamada `` Ownership ``, la cual es: la característica especial que permite a Rust garantizar la seguridad de la memoria sin necesidad de un recolector de basura . Ownership : es el un conjunto de reglas que rigen la forma en que un programa de Rust administra la memoria. Esta característica permite que la memoria se administre a través de un sistema de propiedad con un conjunto de reglas que el compilador verifica. Si se viola alguna de las reglas, el programa no se compilará. Heap, Stack y Garbage collection Heap :  son secciones de memoria que se utilizan para almacenar datos en un programa. Stack : es una estructura simple que se usa para variables locales y llamadas a funciones. Garbage collection : es un recolector de basura, un proceso automático que libera memoria de un programa. Reglas básicas de Ownership Cada valor en Rust tiene un propietario ; si se transfiere la propiedad (move), el propietario anterior pierde acce...

Ziglang, un lenguaje de programación similar a C++

Ziglang es: un lenguaje de programación de propósito general y cadena de herramientas para mantener un software robusto, óptimo y reutilizable. Anteriormente hemos hablado de los "nuevos" lenguajes de programación que vienen a ser la respuesta a los clásicos problemas de la programación: escalabilidad, robustez, rendimiento, manejo de memoria, control de errores, etc. Y Ziglang no se quiere quedar atrás. Ziglang es un lenguaje que: Promete ser simple.  Sin flujo de control oculto.  Sin asignaciones de memoria ocultas.  Sin preprocesador, sin macros.  Te permitirá invocar a cualquier función en tiempo de compilación.  Interoperabilidad con C/C++. Si quieres instalarlo, puedes echar un vistazo en ésta página: https://ziglang.org/learn/getting-started Si solo quieres probarlo, puedes echar un vistazo en ésta página: https://codapi.org/zig/ El clásico "Hola, mundo" Comencemos con un ejemplo sencillo: holamundo.zig const std = @ import( ...

Un vistazo a Carbon Language: un sucesor experimental de C++

Todo lenguaje de programación que se digne de serlo pretende ser la respuesta a todos los problemas de la programación (recolección de basura, seguridad, escalabilidad, rendimiento, portabilidad, etc.) y en ésta ocasión presentamos a Carbon Language , un "nuevo" lenguaje de programación que , nada humilde, pretende ser el reemplazo del poderoso, temido y odiado C++ (que a su vez pretendió ser el reemplazo del mítico C ). Carbon Language fue diseñado para tener lo mejor de C++ y lo peor mejor olvidarlo. Promete: Rendimiento equivalente a C++ mediante LLVM , con acceso de bajo nivel a bits y direcciones. Interopere con su código C++ existente, desde la herencia hasta las plantillas.  Compilaciones rápidas y escalables que funcionan con sus sistemas de compilación C++  existentes. ¿Por qué existe Carbon Language? El sitio trata de explicar el por qué de su creación: "C++ sigue siendo el lenguaje de programación dominante para software de rendimiento crít...

Odin Programming Language, un lenguaje orientado a datos

El sitio oficial define a Odin como: Un lenguaje de programación de propósito general con tipado diferenciado creado para sistemas modernos de alto rendimiento y programación orientada a datos. Principios de Odin Simplicidad.  Rendimiento alto. Enfocado a sistemas modernos. Para quienes disfrutan la programación. Promete ser un lenguaje escalable, eficiente en la administración de recursos y memoria, entre otras características más. Se considera un C disfrutable (sic). Si sabes C, C++ o incluso Java, Scala y Kotlin su sintaxis se te hará familiar. Junto con Rust, Vlang, Dlang, Golang son considerados lenguajes maduros que han aprendido de los errores de sus antecesores y han adoptados sus principales características. Nota: Para quienes no sepan, Odin es un dios nórdico, padre de Thor y de ahí el nombre del lenguaje de programación (de nada). Si quieres instalar el lenguaje en tu máquina, ve a este sitio: https://odin-lang.org/docs/install/ Si solo quieres p...

Pascal, un lenguaje de programación imperativo y estructural

Pascal es un lenguaje de programación con paradigma imperativo y estructural. Creado por Niklaus Wirth para ayudar a los programadores novatos. Características : Estructural. Imperativo. Fuertemente tipado. De alto nivel. Multipropósito. El lenguaje ha influido a lenguajes como: Delphi , C#, Module, Java, entre otros. Para instalarlo deberás ir este liga: https://www.freepascal.org/download.html Si usas Windows o Linux, el ejecutable no tiene mucha ciencia y podrás instalar FreePascal en tu máquina. Comencemos con unos ejemplos. Ejemplo. El clásico "Hola, mundo" en Pascal. holamundo.pas PROGRAM HolaMundo ( OUTPUT ) ; BEGIN { Como la siguiente instrucci¢n no es ejecutable, no se requiere la instrucci¢n "END.", aunque puede ponerse seg£n las preferencias del programador. } WriteLn ( '­Hola, mundo en Pascal!' ) ; END . Salida: Hola , mundo en Pascal ! Algunos de los tipos de datos en Pascal son: integer. real. b...

FORTRAN, un lenguaje de programación científica y en paralelo

FORTRAN (The IBM Mathematical For mula Tran slating System) es: un lenguaje de programación paralelo y de alto rendimiento. Características: Procedural. Imperativo. Tipado estático y fuerte. Ideal para cálculo numérico y computación científica. De alto nivel. Portable (en la actualidad). Al igual que Pascal y C es considerado ideal para realizar cálculos complejos y programación en paralelo. Con el advenimiento de lenguajes como, el no tan nuevo, Python y otros más (Java, Kotlin, etc.) es preciso conocer lenguajes que se niegan a morir pues aún falta explotarlos correctamente. Muchos no saben pero Python es muy usado actualmente por su "rapidez" a la hora de crear aplicaciones de Machine Learning . Sin embargo, desconocen que detrás de este lenguaje están librerías hechas en C o C++ quienes hacen el trabajo duro y dejan a Python la parte más sencilla. Igualmente hay quienes emplean Python acompañado del lenguaje FORTRAN quien se hace cargo de las operaciones com...

Webassembly: Hola, mundo en C

WebAssembly (abreviado Wasm) es un formato de instrucción binaria para una máquina virtual basada en pila. Wasm está diseñado como un objetivo de compilación portátil para lenguajes de programación, lo que permite la implementación en la web para aplicaciones de cliente y servidor. Esto permite que podamos crear código en C, C++, Rust, etc. y ejecutarlo en nuestro navegador. Características: Eficiente y rápido Seguro Abierto y depurable Parte de la plataforma web abierta ¿Y qué con Emscripten? Emscripten es una cadena de herramientas de compilación completa para WebAssembly, que utiliza LLVM, con un enfoque especial en la velocidad, el tamaño y la plataforma web. Con Emscripten se puede: 1. Compilar código C y C++, o cualquier otro lenguaje que use LLVM, en WebAssembly y ejecutarlo en la web, Node.js u otros tiempos de ejecución de wasm. 2. Compilar los tiempos de ejecución de C/C++ de otros lenguajes en WebAssembly y luego ejecutar el código en e...

Rust: usando Cargo para crear un proyecto

  En este post veremos como crear un proyecto usando Cargo , el cual es el sistema de construcción y administrador de paquetes de Rust. Instalamos Rust (en caso de no tenerlo ya instalado): curl --proto '=https' --tlsv1. 2 -sSf https: //sh.rustup.rs | sh Comprobamos la instalación de Rust y Cargo: rustc --version cargo --version Creamos un proyecto con Cargo: cargo new mi_paquete cd mi_paquete Si todo funcionó correctamente, te creará la siguiente estructura de archivos y carpetas: mi_paquete/ ├── Cargo. lock ├── Cargo. toml ├── src │   └── main. rs └── target ├── CACHEDIR. TAG Veremos a continuación el contenido de los archivos: Cargo.toml y main.rs Cargo.toml [package] name = "mi_paquete" version = "0.1.0" edition = "2021" authors = [ "Alquimista de Código <alquimista.codigo@gmail.com>" ] # See more keys and their definitions at https: //doc.rust-lang.org/cargo...

Go: declarando funciones(4)

Continuamos con la serie de post sobre Go(lang) y la declaración de funciones . En ésta ocasión haremos una serie de ejemplos con funciones. Pero antes, ¿Cuál es la diferencia entre funciones y procedimientos? Un procedimiento no devolverá ningún valor. Una función deberá devolver al menos un valor. Go(lang) nos permitirá no solo devolver un valor en una función, sino más de dos valores. func sumaResta(x, y int32 ) ( int32 , int32 ) { return (x + y), (x - y) } Se puede observar que los valores de regreso son el resultado de la suma y resta. // Asignamos los valores a las variables opr1 y opr2 var opr1, opr2 = sumaResta( 3 , 2 ) Mostramos los resultados en pantalla: // Imprimimos en pantalla los resultados fmt.Printf( "Suma = %d , Resta = %d\n" , opr1, opr2) Si definimos una función que devuelva más de dos valores: func sumaRestaMultiplica(x, y int32 ) ( int32 , int32 , int32 ) { return (x + y), (x - y), (x * y) } Como se puede obser...