Ir al contenido principal

Tipos de datos en Ada lang

Ada es un lenguaje con un sistema de tipos muy robusto y flexible, diseñado para garantizar la seguridad y fiabilidad del software.

Es conocido por su riguroso control de tipos y su capacidad para definir tipos personalizados. A continuación veremos los tipos de datos que maneja Ada.

Tipos de datos que maneja Ada

  1. Tipos escalares.
  2. Tipos de Datos Compuestos.
  3. Tipos de Datos de Acceso.
  4. Tipos Enumerados.
  5. Tipos de Datos de Tiempo.
  6. Tipos de Datos de Subtipo.
  7. Tipos de Datos Protegidos.
  8. Tipos Derivados.
  9. Tipos de Datos Discriminados.
  10. Tipos de Datos de Tareas (Tasks).

Tipos escalares

Integers (enteros), Reales, Booleanos y de tipo caracter (Character).

subtype Small_Int is Integer range 1 .. 100;

type Real_Type is digits 10;

type Fixed_Type is delta 0.01 range -100.0 .. 100.0;

Bool_Value : Boolean := True;

Char_Value : Character := 'A';

Tipos de Datos Compuestos

Arrays, String y registros (Record).

type Int_Array is array (1 .. 10) of Integer;


Greeting : String := "Hello";


type Person is record
   Name : String(1 .. 20);
   Age  : Integer;
end record;

Tipos de Datos de Acceso

Apuntadores (access).

type Int_Ptr is access Integer;

Tipos Enumerados

Los queermiten definir un conjunto de valores discretos que un tipo puede tomar (enumerations).

type Days is (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);

Tipos de Datos de Tiempo

Ada incluye tipos para manejar valores de tiempo y fechas, con soporte para intervalos y operaciones aritméticas sobre tiempo.

type Day_Duration is range 0.0 .. 86400.0;  -- Duración de un día en segundos

Tipos de Datos de Subtipo

subtype Positive_Int is Integer range 1 .. Integer'Last;

Tipos de Datos Protegidos

Permiten definir variantes de tipos existentes con restricciones adicionales, como un rango específico de valores.

protected type Shared_Counter is
   procedure Increment;
   function Get_Value return Integer;
private
   Counter : Integer := 0;
end Shared_Counter;

Tipos Derivados

Permiten crear un nuevo tipo basado en un tipo existente, heredando sus características pero con la posibilidad de añadir restricciones o comportamientos específicos.

type Positive_Speed is new Integer range 0 .. 200;

Tipos de Datos Protegidos

Utilizados en programación concurrente para garantizar acceso seguro a datos compartidos entre múltiples tareas.

protected type Shared_Counter is
   procedure Increment;
   function Get_Value return Integer;
private
   Counter : Integer := 0;
end Shared_Counter;

Tipos de Datos Discriminados

Son registros que contienen campos opcionales, donde la estructura puede variar en función de un discriminante.

type Shape (Filled : Boolean) is record
   X, Y : Integer;
   case Filled is
      when True  => Color : Color_Type;
      when False => null;
   end case;
end record;

Tipos de Datos de Tareas (Tasks)

Representan tareas concurrentes en Ada, permitiendo definir procesos que pueden ejecutarse en paralelo.

task type Worker is
   entry Start_Work;
end Worker;

Estos son los tipos de datos que maneja el lenguaje de programación Ada.

Enlaces:

https://ada-lang.io/
https://alquimistadecodigo.blogspot.com/2024/09/ada-un-lenguaje-de-programacion-del-que.html

Comentarios

Entradas populares de este blog

Rocket: un framework web para Rust

Rocket Framework es: Un framework web escrito en Rust.   Inspirado en Rails, Flask, Bottle y Yesod.  Admite el manejo de solicitudes HTTP, Web Sockets, JSON, plantillas y más. Creando un proyecto con Rocket Framework En primer lugar, verificamos la instalación de Rust en nuestras máquinas: rustc - - version Continuamos con la configuración de Rust nightly como nuestra cadena de herramientas predeterminada ejecutando el comando: rustup default nightly Si lo prefieres, una vez que configuremos un directorio de proyecto en la siguiente sección, puedes usar anulaciones por directorio para usar la versión nocturna solo para tu proyecto Rocket ejecutando el siguiente comando en el directorio: rustup override set nightly Creamos nuevo proyecto `` hola-rocket `` y nos ubicamos en el directorio creado: cargo new hola - rocket - - bin cd hola - rocket Con Cargo, agregamos la dependencia de rocket: cargo add rocket Abrimos el archivo `` Cargo.toml `` Ca...

Odin language: el lenguaje de programación orientado a datos para un desarrollo de software sensato

En esta serie sobre lenguajes de programación hablamos de Odin , un lenguaje orientado a datos. Un nuevo lenguaje de programación que nos podrá recordar a lenguajes como C++, Python, Golang o hasta Rust. Instalación (Windows): 1 2 3 4 $ git clone https://github.com/odin-lang/Odin $ cd Odin $ git pull $ build.bat release Debemos asegurarnos de crear la variable de entorno: Nombre: ODIN_HOME Valor: C:\Users\HP\Documents\pruebasOdin\Odin Ejemplo 1. Como primer programa tendremos al clásico "Hola, mundo". holamundo.odin package holamundo import " core:fmt " main : : proc ( ) { fmt . println ( " ¡Hola, mundo desde Odin! " ) } Construimos: $ odin build holamundo . odin - file Ejecutamos: $ holamundo .exe Recordar que si usamos Visual Studio Code podemos instalar el plugin de Odin Language: https://marketplace.visualstudio.com/items?itemName=DanielGavin.ols Ejemplo 2. Programa que muestre las variables que pod...

Programación Windows Batch (CMD) parte 3

Crear ciclos para efectuar operaciones tediosas nos ahorrará tiempo para realizar otras tareas. En está ocasión veremos ciclos con FOR . ¿Cuál es la síntaxis de bucle FOR en Windows Batch? Si está dentro de un archivo *.bat : FOR %%variable IN (seq) DO operaciones Si lo ejecutamos en una terminal: FOR %variable IN (seq) DO operaciones Ejemplo 1 . Recorrer una secuencia de números del 0 al 5: recorrer.bat @ echo off FOR %%i in ( 0 1 2 3 4 5 ) DO echo Hola no. %%i pause Nos imprimirá en pantalla: Hola no. 0 Hola no. 1 Hola no. 2 Hola no. 3 Hola no. 4 Hola no. 5 ¿Puedo usar contadores? Si, se pueden usar. Ejemplo 2 . Uso de contadores: contador.bat @ echo off set numeros = 1 2 3 4 5 6 7 8 9 10 set cont = 0 for %%a in ( %numeros% ) do ( echo Hola no. %%a :: Contador set /a cont+ = 1 ) echo Total: %cont% Este código nos imprimirá, además de los mensajes Hola no. 0 ..., el total de valores conta...