domingo, 23 de junio de 2024

El lenguaje de programación D

 


Según el sitio oficial, el lenguaje D es:

Un lenguaje de programación de propósito general con escritura estática, acceso a nivel de sistemas y sintaxis similar a C.

Después de la creación del lenguaje C muchos otros lenguajes como C++ o C# proclamaban ser el real sucesor. Sin embargo, el lenguaje D aprendió de los error de C++ y clama ser el real sucesor de C.

En primer lugar:

  • Conserva la esencia de C/C++.
  • Capaz de hacer código de bajo nivel como C/C++.
  • Omite algunos aspectos de C/C++.
  • Conserva la herencia, pero solo la simple.
  • Uso de plantillas como C++.
  • Soporta la programación funcional.
  • Manejo de memoria (recolección de basura).
  • Interacción con la API de C.

Para probar este lenguaje sin tener que instalarlo debes visitar este sitio:

https://tour.dlang.org/

Ejemplo. Crear el hola, mundo en D.

holamundo.d

import std.stdio;

void main(string[] args)
{
    writeln("Hola, mundo en D");
}

A primera vista es similar a un programa hecho en C.

Ejemplo. Sumar dos números enteros.

suma.d

import std.stdio;

/*
  Sumar dos números en lenguaje D
*/

void main(string[] args)
{
    int x = 0;
    int y = 21;
    
    if(x == 0){
        x = 31;
    }
    
    int suma = x + y;
    writef("La suma de %d y %d es: %d", x,y,suma);

}

Declarar variables es de manera idéntica a la que se hace en C.

Tipos de datos básicos en D:

  • bool, byte, ubyte, char 
  • short, ushort, wchar
  • int, uint, dchar
  • long, ulong
  • float, double, real

Ejemplo. Mostrar el elemento 2 de un arreglo de cadenas.

saludo.d

import std.stdio;

void main(string[] args)
{
    string[] nombre = ["Miguel","Oscar","Karla"];
    writef("Hola, %s", nombre[2]);

}

Ejemplo. Uso de sentencias condicionales (if, switch)

seleccion.d

import std.stdio : writeln;


void main(string[] args)
{
    if (1 == 1)
        writeln("Esto siempre será verdadero");

    int c = 5;
    switch(c) {
        case 0: .. case 9:
            writeln(c, " entre 0 y 9");
            break; 
        case 10:
            writeln("10");
            break;
        default: 
            writeln("Ningún caso");
            break;
    }
}

En D existen estas sentencias de flujo de control selectivas:

  • if-else
  • switch

Ejemplo. Obtener la media de una matriz de números.

recorrer.d

import std.stdio : writefln;



void main() {

    auto arr = [

        [5, 15],      // 20

        [2, 3, 2, 3], // 10

        [3, 6, 2, 9], // 20

    ];



    foreach (i, row; arr)

    {

        double total = 0.0;

        foreach (e; row)

            total += e;



        auto avg = total / row.length;

        writefln("Promedio [row=%d]: %.2f", i, avg);

    }

}

Continuaremos con este tema en próximas entregas.

Enlaces:

https://dlang.org/
https://tour.dlang.org/
http://www.dsource.org/

No hay comentarios:

Publicar un comentario