Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como c++

V lang: comparativa con Go

V Lang es un lenguaje de programación que ha tomado lo mejor de los lenguajes C y C++ , se inspira principalmente en Go , pero también toma elementos de Rust , Swift , Kotlin , Oberon y Python . Es un lenguaje de tipado fuerte. Además podemos distinguir de las variables tipo mutable o inmutable. Por su parte, Go es un lenguaje de programación diseñado para ser rápido, eficiente, concurrente y fácil de aprender. Compilado y con tipado estático, destaca en el desarrollo backend , sistemas en la nube y redes gracias a su gestión automática de memoria y alto rendimiento. Observemos está tabla comparativa: Comparativa Go y V Lang Aspecto Go V Lang Creador Ken Thompson, Robert Pike y Robert Griesemer Alexander Medvednikov Objetivo Lenguaje eficiente, concurrente y fácil de usa...

Punteros en Rust, ¿Qué son y para qué sirven?

En Rust existe el concepto de punteros, pero se maneja de manera distinta a lenguajes como C o Go , porque Rust pone mucho énfasis en la seguridad de memoria y en evitar errores comunes como dangling pointers o data races . Recordando el post anterior tenemos que una variable se compone de:   Un tipo de dato.   Un nombre.   Un valor.   Una dirección de memoria. Las dos primeras características las define el programador, el valor depende del flujo del programa. La memoria la designa el sistema. Y es aquí donde entran los punteros , que son variables que almacenan la dirección de memoria de otra variable . En Rust , el concepto puede ser un poco diferente a lenguajes como C y Go  como lo vamos a ver. Tipos de punteros en Rust En Rust,  veremos los punteros como en referencias , Box , Rc/Arc , raw pointers  y su uso está regulado por el sistema de propiedad para garantizar seguridad y eficiencia. ¿Para qué sirven...

Punteros en Go, ¿Por qué tendría que usarlos?

Los que ya llevan cierto tiempo en la programación sabrán que uno de los conceptos más difíciles de aprender y usar son los famosos punteros: variables que almacenan la dirección de memoria de otra variable . Y es que una variable (en lenguajes de tipado estático como C) se compone de: Un tipo de dato.  Un nombre.  Un valor.  Una dirección de memoria. Las dos primeras características las define el programador, el valor depende del flujo del programa. La memoria la designa el sistema. En el lenguaje de programación C tenemos que: // Definimos una variable de tipo entero con un valor int numeroInt = 33 ; // Definimos un puntero que almacena la dirección de la variable numeroInt int * punteroInt = & numeroInt; Esto nos permite trabajar con datos de manera más eficiente y flexible, especialmente cuando quieres modificar valores dentro de funciones o estructuras sin copiar todo el contenido. Pero, ¿Qué tiene que ver con Go? La respuesta es: tien...

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...