Ir al contenido principal

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

  1. Simplicidad. 
  2. Rendimiento alto.
  3. Enfocado a sistemas modernos.
  4. 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 probarlo, puedes ver este sitio:

https://codapi.org/odin/

La extensión de un programa en Odin no podría ser más que *odin.

Ejercicio 1. El clásico Hola, mundo.

package main

import "core:fmt"

main :: proc() {
	fmt.println("Hola, mundo en Odin!!")
}

Salida:

Hola, mundo en Odin!!

Ejercicio 2. Crear un programa que recorra una secuencia de 10 números.

for-ciclo.odin

package main

import "core:fmt"

main :: proc() {
    for i := 0; i < 10; i += 1 {
	fmt.println("Hola no.",i)
    }

}

Salida:

Hola no. 0
Hola no. 1
Hola no. 2
Hola no. 3
Hola no. 4
Hola no. 5
Hola no. 6
Hola no. 7
Hola no. 8
Hola no. 9

Ejercicio 3. Programa que calcule el número fibonacci.

fibonacci.odin

package main

import "core:fmt"

fibonacci :: proc(n: int) -> int {
	switch {
	case n < 1:
		return 0
	case n == 1:
		return 1
	}
	return fibonacci(n-1) + fibonacci(n-2)
}


main :: proc() {
   num:int = 6;
   fmt.println("Número fibonacci (6): ",fibonacci(num)) 
}

Salida:

Número fibonacci (6):  8

Ejercicio 4. Programa que calcule el factorial de un número.

factorial.odin

package main

import "core:fmt"

factorial :: proc(n: int) -> int {
	switch {
	case n < 1:
		return 0
	case n == 1:
		return 1
	}
	return n * factorial(n-1)
}


main :: proc() {
   num:int = 6;
   fmt.println("Número factorial (6): ",factorial(num)) 
}

Salida:

Número factorial (6):  720

Ejercicio 5. Programa que tenga 4 funciones para operaciones aritméticas básicas: suma, resta, producto y división.

basicas.odin

package main

import "core:fmt"

multiplica :: proc(x: int, y: int) -> int {
	return x * y
}

division :: proc(x: int, y: int) -> int {
	return x / y
}

resta :: proc(x: int, y: int) -> int {
	return x - y
}

suma :: proc(x: int, y: int) -> int {
	return x - y
}

main :: proc() {
   x:int = 6;
   y:int = 5;
   fmt.println("Suma: ",suma(x,y)) 
   fmt.println("Resta: ",resta(x,y)) 
   fmt.println("Producto: ",multiplica(x,y)) 
   fmt.println("División: ",division(x,y)) 
}

Salida:

Suma:  1
Resta:  1
Producto:  30
División:  1

Como se puede ver se han creado 4 funciones. Las cuales toman dos parámetros de entrada, los cuales son dos números de tipo ``int``.

¡Hemos creado nuestros primeros programas usando Odin!

En próximas entregas continuaremos con el tema.

Enlaces:

https://odin-lang.org/
https://zylinski.se/posts/introduction-to-odin/

Comentarios

Entradas populares de este blog

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

z/OS, ¿Qué es? y ¿Cuáles son sus herramientas?

  En este post veremos las herramientas de z/OS de IBM. z/OS es un sistema operativo de mainframe desarrollado por IBM.  Es parte de la serie IBM z Systems (anteriormente conocida como System z), que se utiliza en los sistemas mainframe de IBM. z/OS es uno de los sistemas operativos más utilizados en el mundo empresarial para ejecutar aplicaciones críticas y procesar grandes volúmenes de datos. Características clave de z/OS: Escalabilidad : z/OS es conocido por su capacidad para manejar grandes cargas de trabajo y escalabilidad vertical, lo que permite agregar recursos de hardware para satisfacer las demandas de procesamiento. Confiabilidad y disponibilidad : z/OS está diseñado para ofrecer alta disponibilidad y confiabilidad. Incorpora características como redundancia y recuperación ante fallas para garantizar la continuidad de las operaciones. Seguridad : Proporciona una amplia gama de funciones de seguridad, como autenticación, autorización y auditoría, para proteger los...