Está en la página 1de 107

Tabla

de contenido
1. Introduction 1.1
2. Caratula 1.2
3. Inicio 1.3
1. a 1.3.1
4. Instalar latino 1.4
1. Windows 1.4.1
2. Debian / Ubuntu 1.4.2
3. Fedora 1.4.3
1. 26 1.4.3.1
2. 25 1.4.3.2
3. 24 1.4.3.3
4. Mac 1.4.4
5. Otros 1.4.5
5. Actualizar 1.5
6. Desinstalar 1.6
1. Desistalar en windows 1.6.1
2. Desinstalar en Linux 1.6.2
7. Hola mundo 1.7
8. Palabras reservadas 1.8
9. Comentarios 1.9
10. Concatenación 1.10
11. Básico 1.11
1. si (if) 1.11.1
2. osi 1.11.2
3. si sino (if else) 1.11.3
4. mientras ( while) 1.11.4
5. repetir - hasta 1.11.5
6. desde (for) 1.11.6
7. elegir (switch) 1.11.7
12. Operadores 1.12
13. Tipos de datos 1.13
1. Cadena 1.13.1
2. Números 1.13.2
3. Listas 1.13.3
4. Diccionarios 1.13.4
5. Lógico 1.13.5
14. Variables 1.14
1. Constantes 1.14.1
2. Globales 1.14.2
3. Variable de texto 1.14.3
4. Variable con valor númerico 1.14.4
5. Valor lógico o booleano 1.14.5
6. Variables como un diccionario 1.14.6
7. Variables tipo lista o arreglos 1.14.7
15. Funciones 1.15
1. Funciones nativas 1.15.1
1. Funciones para archivos 1.15.1.1
2. Funciones Base 1.15.1.2
3. Funciones para cadena (texto) 1.15.1.3
2
4. Funciones para conversiones 1.15.1.4
5. Funciones para datos 1.15.1.5
6. Funciones para diccionarios 1.15.1.6
7. Funciones para entrada y salida 1.15.1.7
8. Funciones simples 1.15.1.8
16. Expresiones 1.16
17. Librerias dinamicas 1.17
1. Redis 1.17.1
1. Instalar en Fedora 1.17.1.1
1. 24 1.17.1.1.1
2. 25 1.17.1.1.2
3. 26 1.17.1.1.3
2. Instalar en Debian 9 1.17.1.2
2. Json 1.17.2
3. Curl 1.17.3
18. Editores 1.18
1. Notepad++ 1.18.1
2. Sublime Text 1.18.2
1. Sublime text en Fedora 1.18.2.1
1. F 24 1.18.2.1.1
3. Atom 1.18.3
4. Gedit 1.18.4
5. Vim 1.18.5
19. Ejercicios 1.19
1. Básicos 1.19.1
1. 00-vacio.lat 1.19.1.1
2. 01-comentarios.lat 1.19.1.2
3. 02-hola.lat 1.19.1.3
4. 03-variables.lat 1.19.1.4
2. Medio 1.19.2
3. Avanzado 1.19.3
20. Actualizar 1.20
21. notas del autor 1.21
22. autores 1.22

3
Introduction

Introduction
¡Bienvenidos al manual de Latino!

Éste es el manual para el Lenguaje de programación Latino el cual se caracteriza por tener una
sintaxis al Español. la versión en linea la encuentras en: https://robincoello.gitbooks.io/latino/content/
y en los servidores de latino aca http://manual.lenguaje-latino.org/

4
Caratula

Caratula

5
Inicio

Inicio
Latino
Esta documentación no está aun terminada, se encuentra en un proceso de desarrollo y cada día
trato de escribir algo, espero pronto terminarla, si tienes sugerencias, gracias.

Si sabes leer y escribir, sabes programar!


http://lenguaje-latino.org/

Documentación en desarrollo, si quieres contribuir, eres bienvenido

A quién está destinado?


Este libro está destinado a personas con muy pocos conocimientos de programación, explicaremos
conceptos informáticos sin mucha complicación

Objetivo
Al final de la lectura de este libro podrás ser capaz de hacer un programa informático usando 'Latino'
como lenguaje de programación

Método de enseñanza
A lo largo de este libro se trabajará con ejemplos y se usará el lenguaje de programación “Latino” que
es un lenguaje con sintaxis en español

Lo que necesitas para empezar


Ser mayor de edad, haber pagado todos tus impuestos, no deberle plata a nadie, y sobre todo tener un
gato negro con ojos amarillos, bueno, bueno, no te asuste si no tienes gato.
En realidad no necesitas mayor cosa, solo el deseo de aprender, y saber que: Programando es la única
forma de ser programador, y no te rindas a la primera barrera que encuentres, y claro también tener la
última versión de latino.

Instalar Latino
Antes de empezar debes instalar latino en tu computadora en vista que vamos a trabajar con este
sistema, también vamos a usar los recursos que ponen a nuestra disposición el sitio oficial de latino
http://lenguaje-latino.org/ ...acá puedes tener la última versión de este lenguaje de programación.

Quieres contribuir con la elaboración o corrección de este


manual?
Primero, gracias por tu interes y las horas que quieres dedicarle gratuitamente a este trabajo, lee las

6
Inicio

instucciones de como y donde puedes ayudarnos aca: http://lenguaje-latino.org/comunidad/

7
a

a
z

8
Instalar latino

Instalar latino
Instalar
Latino es un sistema multi plataforma, esto quiere decir que puedes hacerlo funcionar en los
siguientes sistemas operativos:

Windows
Debian / Ubuntu
Fedora / CentOS
Mac
Otros

En vista de la constante evolución que tiene latino, lo mejor es ir a la página oficial y alli obtendras la
última versión http://lenguaje-latino.org

9
Windows

Windows
Windows

Latino se instala como cualquier otro programa para ello obten la última versión aca:

http://lenguaje-latino.org/descargas/

Sigue los pasos

10
Windows

11
Windows

Deseleciona ‘Ejecutar Latino’

Listo !!

Si tienes alguna dificultad, dejanos un mensaje en el foro

12
Windows

13
Debian / Ubuntu

Debian / Ubuntu
Probado en:

Debian 9

Empezamos por actualizar e instalar algunas de las librerias que necesitamos:

sudo apt-get update


sudo apt-get install git bison flex cmake gcc g++
sudo apt-get install libcurl4-openssl-dev libhiredis-dev libjansson-dev
sudo apt-get install redis-server curl libgtk-3-dev
sudo apt-get install libreadline-dev libpthread-stubs0-dev

Ahora la instalación propiamente dicha:

cd ~
git clone --recursive https://github.com/primitivorm/latino
cd latino
git submodule update --init --recursive
cmake .
make
sudo make install

Explicación:
Vamos al repertorio personal

cd ~

Hacemos una copia de "Latino"

git clone --recursive https://github.com/primitivorm/latino

Ahora entramos en la caperta creada

cd latino

Actualizamos las dependencias

git submodule update –init –recursive

Copilamos e instalamos

cmake .
make
sudo make install

Ejecutamos

latino

y nos dara algo coo esto.


14
Debian / Ubuntu

Latino 1.0.0
Todos los derechos reservados (C) 2015-2017. Latinoamerica
latino>

Estamos listos para trabajar,

15
Fedora

Fedora
Fedora
Cada versión de fedora tiene una particularidad, por eso es mejor que cojas tu versión correcta,
este procedimiento es porsi no esta en la lista tu versión

Dependencias
Antes de instalar latino, vamos a instalar todos paquetes necesarios:

sudo dnf update


sudo dnf install bison flex cmake gcc g++
sudo dnf install libjansson-dev libcurl4-openssl-dev libhiredis-dev curl
sudo dnf install redis-server jansson-devel
sudo dnf install groupinstall "Development Tools" "Development Libraries"
sudo dnf install groupinstall "RPM Development Tools" redhat-lsb libgtk-3-dev

INSTALAR
cd ~
git clone --recursive https://github.com/primitivorm/latino
cd latino
git submodule update --init --recursive
cmake .
make
sudo make install

Ahora lo probamos

latino

Debe darnos esto

Latino 1.0.0
Todos los derechos reservados (C) 2015-2017. Latinoamerica
latino>

Desinstalar
Puedes ver un video de como proceder aca https://youtu.be/Q5xGm_Bp22k

Pirmero debes saber donde esta instalado

whereis latino

Te dará algo parecido a esto:

latino: /usr/local/bin/latino

Ahora que sabemos dónde está solamente lo borramos:


16
Fedora

sudo rm /usr/local/bin/latino

Ayuda en nuestro foro


http://lenguaje-latino.org/foro/fedora-centos/

Cualquier aportación o sugerencia es bienvenida.

17
26

26
Fedora 26

Dependencias
Antes de instalar latino, vamos a instalar todos paquetes necesarios:

sudo dnf update


sudo dnf install gcc-c++
sudo dnf install git bison flex cmake kernel-devel
sudo dnf install readline-devel

INSTALAR
cd ~
git clone --recursive https://github.com/primitivorm/latino
cd latino
git submodule update --init --recursive
cmake .
make
sudo make install

Ahora lo probamos

latino

Debe darnos esto

Latino 1.0.0
Todos los derechos reservados (C) 2015-2017. Latinoamerica
latino>

18
25

25
Fedora 25
:-( aun no hay, pronto!!

19
24

24
Fedora 24

Dependencias
Esta instalación es validad también para Fedora Server Edition

Antes de instalar latino, vamos a instalar todos paquetes necesarios:

sudo dnf update


sudo dnf install gcc gcc-c++
sudo dnf install git bison flex cmake make automake kernel-devel curl
sudo dnf groupinstall "Development Tools" "Development Libraries"
sudo dnf groupinstall "RPM Development Tools"
sudo dnf install jansson-devel
sudo dnf install openssl-devel
sudo yum groupinstall "Development Tools"
sudo dnf install gtk3-devel gtk2-devel
sudo dnf install hiredis-devel
sudo dnf install readline-devel

INSTALAR
cd ~
git clone --recursive https://github.com/primitivorm/latino
cd latino
git submodule update --init --recursive
cmake .
make
sudo make install

Ahora lo probamos

latino

Debe darnos esto

Latino 1.0.0
Todos los derechos reservados (C) 2015-2017. Latinoamerica
latino>

Fedora 24

http://mirror2.hs-esslingen.de/fedora/linux/releases/24/Workstation/x86_64/iso/

escoje la version live

Fedora-Workstation-Live-x86_64-24-1.2.iso

Ayuda en nuestro foro:


20
24

http://lenguaje-latino.org/foro/fedora-centos/

Cualquier aportación o sugerencia es bienvenida.

21
Mac

Mac
MAC
Dependencias
Antes de instalar latino, vamos a instalar todos paquetes necesarios:

sudo port selfupdate


sudo port install flex bison cmake gcc g++ clang readline

INSTALAR
cd ~

git clone --recursive https://github.com/primitivorm/latino


cd latino
git submodule update --init --recursive
cmake .
make
sudo make install

Pre requisitos

Nombre paquete Versión


bison 3.04
flex 2.5.39
cmake 3.3.1
gcc 4.9.3
g++ 4.9.3
readline 7.0-2

Ayuda en nuestro foro


http://lenguaje-latino.org/foro/mac/

Cualquier aportación o sugerencia es bienvenida.

22
Otros

Otros
Para las distribuciones basadas en Debian instala segun las instucciones para Debian

23
Actualizar

Actualizar
Si ya tienes instalado 'Latino' y quieres pasar a otra versión, primero debes desinstalar la versión
actual y solamente después instala la ueva versión.

24
Desinstalar

Desinstalar

25
Desistalar en windows

Desistalar en windows
Para desistalar Latino en windows se debe hacer como cualquier otro programar

26
Desinstalar en Linux

Desinstalar en Linux
Desinstalar
Puedes ver un video de como proceder aca https://youtu.be/Q5xGm_Bp22k

Pirmero debes saber donde esta instalado

whereis latino

Te dará algo parecido a esto:

latino: /usr/local/bin/latino

Ahora que sabemos dónde está solamente lo borramos:

sudo rm /usr/local/bin/latino

Ayuda en nuestro foro


http://lenguaje-latino.org/foro/fedora-centos/

Cualquier aportación o sugerencia es bienvenida.

27
Hola mundo

Hola mundo
Asi es como haces tu primer Hola mundo.

escribir("Hola mundo")

Paso a paso

Abres el bloc de notas y escribes el el mensaje que deseas mostrar

Ahora registrar ese documento con la extencion .lat, muy importante la exteción

ahora vas en busqueda de la consola o terminal de windows

28
Hola mundo

29
Hola mundo

ahora debes posicionarte en la carpeta donde registraste el documento

30
Hola mundo

para ello has lo siguiente:

para asegurarte que el documento esta en esa carpeta has un 'dir'

31
Hola mundo

Ahora escribe en la consola

latino holamundo.lat

y das a "enter" y te saldra lo siguiente,

haz realizado tu hola mundo con "Latino"

32
Palabras reservadas

Palabras reservadas
Palabras reservadas hasta el momento
caso
cierto | verdadero
defecto | otro
desde
elegir
falso
fin
funcion | fun
global
hasta
mientras
nulo
repetir
regresar | retornar | ret
romper
si
sino
osi

33
Comentarios

Comentarios
Comentarios
Los comentarios son lineas que tu escribes en el código como notas, solo para recordar algo, explicar
para que sirve el código, dejar alguna nota para tu colega de trabajo, es muy practico cuando regresas
al códigos después de varios meses.
Estas lineas NO son tomadas en cuenta en la ejecución del código, su formato es el siguiente:

Ejemplos:

# esto es un comentario de una linea

// esto es otro comentario de una linea

/*
Esto es un comentario
que tiene
varias
lineas
*/

34
Concatenación

Concatenación
Concatenación
Para unir o concatenar puedes usar el punto (.)

saludo = 'Hola '


nombre = 'Chapatin'

escribir(saludo . nombre)

#esto da como resultado en pantalla:

Hola Chapatin

Apartir de la version 0.9.11 la concatenacion se hace con dos punto .

saludo = 'Hola '


nombre = 'Chapatin'

escribir(saludo .. nombre)

#esto da como resultado en pantalla:

Hola Chapatin

35
Básico

Básico
Básico
Algunas cosas básicas a tomar en cuenta para empezar a programar

Extención es .lat

La extención con que se trabaja es .lat, debes tener cuidado al crear tus documentos y verificar bien
que llevan esta extención

Mostrar algo en pantalla

escribir("Hola Latinos")

También puedes usar el imprimir() que es lo mismo, usa el que más te guste

imprimir("Hola latinos")

Obtener un valor del usuario vía la consola

Si quieres interactuar con el usuario y pedirle que introduzca alguna información, puedes usar este
formato para hacerlo

leer()

Esto lee lo que el usuario escribe, y lo podrias asignar a una variable para poder trabajar con los
valores recojidos.
Ejemplo

escribir("Cual es tu nombre?")
nombre = leer()
escribir("Hola " . nombre)

El punto '.' lo usamos para concatenar (para juntar)

36
Básico

37
si (if)

si (if)
si (if)
sies una instrucción que permite la ejecución del código, si la condición que está entre los paréntesis
se cumple

donde condición es una expresión lógica (verdadero o falso)

su sintaxis es la siguiente:

si( condicion )
#codigo a ejecutarse
fin

Ejemplo

si(clave == "Srdp#ds9*/")
escribir("Clave correcta")
fin

Aquí estoy comparando la variable clave y si es igual a Srdp#ds9*/ escribo "clave correcta.

Recuerde que el = es para asignar un valor auna variable y el == es para comparar

Para que funcione realmente debo pedir al usuario la clave y quedaria así:

clave = leer()
si(clave == "Srdp#ds9*/")
escribir("Clave correcta")
fin

Otro ejemplo para saber si el número es positivo

# se ocupa la funcion "leer" para leer un valor del teclado


escribir("Introduce un número:")
numero = leer()
si( numero >= 0 )
escribir('El numero es positivo')
fin

En la línea si( numero >= 0 ) realizamos la comparación si esta nos da verdadero


ejecutamos todas las lineas hasta llegar al 'fin', en este ejemplo, el código escribir('El numero
es positivo') se ejecuta siempre y cuando el usuario escriba un numero mayor o igual a cero.

video en youtube: /watch?v=GoPpFjNJfVE

Lo interesante es que podemos combinar muchas maneras de comparar dentro del si, ejemplo:

Valor lógico directo

38
si (if)

condicion = verdadero
si(condicion)
escribir("Si, la comparación dio verdadero")
fin

Aqui la comparación se realiza con los valores lógicos buleanos 'verdadero | falso '

asignado a una variable

El valor buleano puede estar en una variable asi:

b = verdadero
si(b)
escribir("es verdad")
fin

Otros ejemplos

Verifica si la clave es correcta

valor = '123'
si (valor)
escribir("La variable valor tiene un valor buleano positivo")
fin

Ya que 0 es negativo y cualquier cosa diferente a cero es positivo

39
osi

osi
Osi
Este se usa cuando se tiene varias opciones y se desea comprar con una de ellas, al final se pone un
sino, en el caso que no haya ninguna opcion equivalente

// dia
d = 2

si ( d == 1)
escribir("Es lunes")
osi d == 2
escribir("Es martes")
osi d == 3
escribir("Es miercoles")
osi d == 4
escribir("Es jueves")
osi d == 5
escribir("Es viernes")
osi d == 6
escribir("Es sábado")
osi d == 7
escribir("Es domingo")
sino
escribir("Día desconocido")
fin

40
si sino (if else)

si sino (if else)


si sino (if else)
Esta es una extención del 'si', recordemos que con el 'si' si la condición no se cumple obviamos el
código que está entre el 'si' y 'fin' pero en ocaciones necesitamos hacer algo si la condición no se
cumple y así es para esto el 'sino'

Su extructura es la siguiente

si( condicion )
codigo a ejecutarse SI se cumple la condición
sino
código a ejecutarse cuando NO se cumple la condición
fin

Veamos un ejemplo

si( 10 > 0 )
escribir("Si, es mayor a cero")
sino
escribir("No, no es mayor a cero")
fin

En este caso en la primera línea del código hacemos la comparación, si esta es correcta ejecutamos lo
que esta entre el 'si' y el 'sino' y si es incorrecta ejecutamos lo que está entre el 'sino' y 'fin'

valor lógico directo

si(verdadero)
escribir("es verdadero")
sino
escribir("es falso")
fin

Como el valor booleano (verdadero/falso) falso es igual a cero '0' podriamos también hacer lo
siguiente:

a = verdadero

si(a)
poner("Es verdadero")
sino
poner("Es falso")
fin

asignado a una variable


b = verdadero
si(b)
escribir("es verdad")
41
si sino (if else)

sino
escribir("es falso")
fin

Verifica si un número es positivo

numero = 15
si(numero >= 0 )
escribir("El numero es positivo")
sino
escribir("El número es negativo ")
fin

Verifica si la clave es correcta

clave = 'robinson'
si (clave == '123abc')
escribir("La clave es correcta, puede entrar")
sino
escribir("Clave incorrecta, intentelo nuevamente ")
fin

42
mientras ( while)

mientras ( while)
mientras (while)
Mientras una condición se cumpla, se ejecutará el código repetidas veces hasta que ya no se cumpla,
suele estar siempre acompañado de un contador u otra forma para que la condición cambie sinó
tendriamos un código de ejecución infinita.

mientras (condicion)
codigo a ejecutarse
fin

Escribe 5 veces la frase "Debo estudiar"

i = 0
mientras ( i < 5 )
escribir("Debo estudiar")
i = i + 1
fin

el resultado seria

[robinson@localhost ejemplos]$ latino hola.lat


Debo estudiar
Debo estudiar
Debo estudiar
Debo estudiar
Debo estudiar

43
repetir - hasta

repetir - hasta
repetir-hasta (parecido al repeat de Lua)
Se parece a mientras pero en esta el codigo se ejecuta por lo menos la primera vez

i= 0
repetir
escribir(i)
i++
hasta (i >= 5)

Ejecutando nos da:

[robinson@localhost ejemplos]$ latino hola.lat


0
1
2
3
4

Si ahora damos un valor inicial de 50

i= 50
repetir
escribir(i)
i++
hasta (i >= 5)

Al ejecutar nos da

[robinson@fedora ejemplos]$ latino hola.lat


50

Esto es porque se ejecuta la primera vez donde i tiene el valor de 50 y al llegar a la comparacion i es
superior o igual >= a 5 asi que deja de repetir ya que esta es la condicion que pusimos.

Esta es una buena manera de asegurarnos que el codigo se ejecute por lo menos una primera vez

44
desde (for)

desde (for)
desde
Desde permite dar un valor inicial a una variable, evaluar la condicion y dar un valor de incremento
al valor inicial, y mientras la condición se cumpla, ejecutamos el código.

desde(valor_inicial, condicion, incremento)


código a ejecutarse
fin

Mostramos del 1 al 10

Este es un contador,i=0lo ponemos en cero, y mientras el contador sea inferior a 10, i<10 a cada
vuelta incrementamos el contador en uno i++.

desde(i=0; i<10; i++)


escribir(i)
fin

Ejecutando nos da

[robinson@fedora ejemplos]$ latino hola.lat


0
1
2
3
4
5
6
7
8
9

45
elegir (switch)

elegir (switch)
Si tenemos una compararación a ralizar con más de tres opciones posibles, esta es la mejor solución,
se hace la comparación con cada caso posible, una vez encontrado simplemente ejecuta el código de
ese caso y sale de elegir, si no encuentra ningun caso ejecuta lo que esta en por defecto

ciudad = 'Quito'

elegir(ciudad)
caso 'Lima':
escribir("Estas en Peru")
caso 'Quito':
escribir("Estas en Ecuador")
caso 'Cancun':
escribir("Estas en Mexico")
caso 'Caracas':
escribir("Estas en Venezuela")
caso 'Cali':
escribir("Estas en Colombia")
defecto:
escribir("No se donde estas")
fin

Ejecutando nos da

[robinson@fedora ejemplos]$ latino hola.lat


Estas en Ecuador

caso solo puede contener valores numericos o una cadena

46
Operadores

Operadores
Operadores:
A continuación se listan los operadores:

Categoría Operadores
Aritmético +, -, *, /, % (modulo), ^ (potencia)
Lógico && (y), \ \ (o)
Concatenación ..
Incremento, decremento ++, -- (valido solo en post)
Relacional ==, !=, <, >, <=, >=, ~= (regex)
Asignación =
Acceso a miembro .
Operador ternario (condicion) ? opcion1 : opcion2

La precedencia de operadores es la misma que otros lenguajes de programación como C / Python /


Lua.

El operador ternario se puede usar para asignar valores basado en una condición, los paréntesis son
requeridos para obtener el resultado esperado.

numero = -5
mensaje = (numero < 0) ? " es negativo" : " es positivo"
escribir("El número " .. numero .. mensaje)
#salida: El número -5 es negativo

47
Tipos de datos

Tipos de datos
Tipos de datos
latino tipo de dato en C
logico bool
númerico double
cadena o literal char*
lista (arreglo) struct
diccionario struct

48
Cadena

Cadena
Cadena: Una cadena es un grupo de caracteres (letras, números u otro caracter), se debe representar
entre comillas simples o dobles

nombre = "Juan Perez"


direccion = 'Av. Siempreviva N 200'

Puedes también tener cadenas numericas

fecha = '2017-01-12'
dia = '25'
mes = "enero"

Todos estos son consideradas variables de cadena

49
Números

Números
Números: Se emplean para representar numeros: enteros, decimales

edad = 15
area = 12.354

Los números no se debe poner ni comillas simples ni dobles ya que si lo haces se consideraría
como una cadena

Para separar los deciamles se emplea el punto

50
Listas

Listas
Son extructuras muy prácticas para cuando deseamos agrupar elementos, vamos a dar un ejemplo:

colores = ['blanco','negro','amarillo','azul','rojo']

Así si quiero acceder al color blanco colores[0]

// y para escribirlo en pantalla


escribir(colores[0])

Te parece raro? bueno tal vez paresca raro, pero hay una pequeña astucia, en la lista de colores
debemos hacer diferencia entre la cantidad de colores que tenemos y la posición del color en la lista:
(el indice).

La cantidad de colores (elementos) que tiene la lista, hace referencia a cuantos elementos (colores)
tenemos en la lista, y evidentemente empezamos a contar desde el 1, en nuestro ejemplo tenemos 5
colores.

El indice es la posición que un color (elemento) ocupa en la lista, y se empieza con la posición cero,
así que podriamos resumir asi:

Indice 0 = blanco
Indice 1 = negro
Indice 2 = amarillo
Indice 3 = azul
Indice 4 = rojo
Sabiendo eso, para acceder al color blanco:

colores[0]

Para el color amarillo

colores[2]

En resumen para acceder a las informaciones de una lista nos basamos en la posición del
elemento: su INDICE.

51
Diccionarios

Diccionarios
Diccionarios
Los diccionarios, también llamados matrices asociativas, deben su nombre a que son colecciones que
relacionan una clave y un valor, entre llaves y separado el valor de la clave con dos puntos.

#Diccionario de personajes y actores:


actores = { "Chilindrina": "Maria Antonieta de las Nieves",
"El chavo del 8": "Roberto Gomez Bolaños",
"Tres patines": "Leopoldo Fernandez" }

El primer valor se trata de la clave y el segundo del valor asociado a la clave.

Como clave usamos cadenas, esto es así porque los diccionarios se implementan como tablas hash, y
a la hora de introducir un nuevo par clave-valor en el diccionario se calcula el hash de la clave para
después poder encontrar la entrada correspondiente rápidamente.

Si se modificara el objeto clave después de haber sido introducido en el diccionario, evidentemente,


su hash también cambiaría y no podría ser encontrado.

La diferencia principal entre los diccionarios y las listas es que a los valores almacenados en un
diccionario se les accede no por su índice, porque de hecho no tienen orden, sino por su clave,
utilizando corchetes [].

escribir(actores["Chilindrina"])
#salida: Maria Antonieta de las Nieves

Al igual que en listas también se puede utilizar corchetes para reasignar valores.

actores["Chilindrina"] = "Maria Antonieta"


escribir(actores["Chilindrina"])
#salida: Maria Antonieta

52
Lógico

Lógico
Lógico: Representa verdadero o falso para expresiones lógicas, existen las palabras reservadas
verdadero y falso para representar valores booleanos, un valor falso es el cero, y todo otro valor
sea cual sea es verdadero

// valores falsos
a = 0
a = falso

// valor verdadero
a = verdadero
a = 1
a = 'casa'
a = 900

un valor falso es el cero, y todo otro valor sea cual sea es verdadero

53
Variables

Variables
Variables
Una variable es una cadena (conjunto de letras) que toma un valor y este no cambia hasta que se le
asigne otro valor, para definir una variable en "Latino" se hace de la siguiente manera:

Variable de texto

El valor de una variable si contiene texto se debe encerrar en comillas simples ' ' o dobles. `" ".

una_letra = 'a'
palabra = 'Latino'
frase = 'Latino, lenguaje de programación en español'

Variable con valor númerico

edad = 12
precio = 250.50

También se pueden encerrar entre comillas simples o dobles los valores númerios

edad = '12'
precio = "250.50"

Los decimales se separan por puntos

Valor lógico o booleano

El valor booleano es algo que puede estar únicamente en dos estados: prendido o apagado, verdadero
o falso, si o no, etc.

Aplicando esto a la programación en Latino existe el valor 0 "cero" para falso y cualquier otro:
número, simbolo, letra o frase representa verdadero, incluso números negativos.

Para el tipo de dato cadena, la cadena vacia "", representa falso, cualquier otra cadena representa
verdadero.

Para listas y diccionarios, cuando se encuentre vacio representará falso, mientras que si contiene al
menos un elemento representará verdadero.

Existen las palabras reservadas verdadero y falso para representar este tipo de dato.
Ejemplos:

v = verdadero
f = falso

v = 1
f = 0

exito = 1
54
Variables

fracaso = 0

cad = ""
saludo = "hola"
lista_vacia = []

#se ocupa la funcion "lógico" para mostrar la representación del dato en boole
escribir(logico(v))
escribir(logico(exito))
escribir(logico(f))
escribir(logico(fracaso))
escribir(logico(cad))
escribir(logico(saludo))
escribir(logico(lista_vacia))

No olvidar que cero '0' es falso y cualquier cosa que sea diferente a cero es verdadero

55
Constantes

Constantes
Constantes:
Cuando se declara una constante, también se debe asignar el valor forzosamente.

Las constantes se deben declarar en mayúsculas.

PI = 3.14159
G = 9.8

56
Globales

Globales
Globales

57
Variable de texto

Variable de texto
nombre = "Juan Perez"

58
Variable con valor númerico

Variable con valor númerico


calificacion = 10

59
Valor lógico o booleano

Valor lógico o booleano

60
Variables como un diccionario

Variables como un diccionario


sueldos = { "Jesus" : 10000, "Maria" : 20000, "Jose" : 30000 } //esto es un di

61
Variables tipo lista o arreglos

Variables tipo lista o arreglos


numeros = [1, 2, 3, 4, 5] //esto es una lista ó arreglo.

62
Funciones

Funciones
Funciones
Si quiero escribir mi dirección haria lo siguiente

escribir("Robinson Coello")
escribir("Lenguaje Latino")
escribir("Bruselas - Belgica")
escribir("Europa")

si ejecuto esto me daria esto:

[robin@localhost]$ latino demo.lat


Robinson Coello
Lenguaje Latino
Bruselas - Belgica
Europa

Que pasaria si debo escribir mi dirección en 50 hojas de mi código, en realidad nada, solo lo escribo
50 veces y listo, pero !!! y si me cambio de dirección, me tocaria buscar en las 50 hojas y correjir una
a una las lineas las de mi dirección, esto no es nada practico, y para una funcion nos resuelve este
problema

Primero creo una funcion con mi direción asi:

funcion direccion()
escribir("Robinson Coello")
escribir("Lenguaje Latino")
escribir("Bruselas - Belgica")
escribir("Europa")
fin

Una vez hecho esto, en cada lugar donde deseo que aparesca mi dirección solo hago el llamado a esa
funcion

//...
direccion()
//...

De esta manera, tengo en un solo lugar los datos que contienen mi direción y si dese cambiarla lo
hago en un solo lugar, a que nos facilita la vida?

quedando el codigo completo asi:

funcion direccion()
escribir("Robinson Coello")
escribir("Bruselas - Belgica")
escribir("Europa")
fin

63
Funciones

direccion()

Avancemos más
Pero podemos ir mas lejos, si deseo escribir a mi novia en la misma dirección como hago? me tocaria
escribir otra funcion con los datos de mi novia,

funcion direccion()
escribir(" Patricia ")
escribir("Lenguaje Latino")
escribir("Bruselas - Belgica")
escribir("Europa")
fin

Eso conlleva varias dificultadades y erroes de programación, no puedo tener dos funciones con el
mismo nombre y no es optimo duplicar código así que lo mejor es hacer una sola funcion y pasarle
el dato que cambia como parametro, en este caso el nombre

funcion direccion( nombre )


escribir( nombre )
escribir("Lenguaje Latino")
escribir("Bruselas - Belgica")
escribir("Europa")
fin

y le paso los nombres en el llamado

// para mi
direccion(" Robinson Coello ")

// para mi nomvia
direccion(" Patricia ")

Asi solo uso una funcion

Ya se lo que estas pensando ;) y si mi novia me deja y se cambia de casa? jjeee pues no le escribo!
bueno supongamos que le quiero escribir lo mejor seria hacer modificaciones a esa funcion para que
sea valido para cualquier direccion asi:

funcion direccion( nombre, empresa, ciudad, pais, continente )


escribir( nombre )
escribir( empresa )
escribir( ciudad .. " " .. pais)
escribir(continente)
fin

Y le paso los datos en el llamdo de la funcion

direccion("Robinson Coello","Lenguaje Latino","Bruselas","Bélgica","Europa")

Y para mi novia

direccion("Patricia Wilm","Lenguaje Latino","Cali","Colombia","Sur America")

64
Funciones

Y nos dara como resultado

Robinson Coello
Lenguaje Latino
Bruselas Bélgica
Europa

Patricia Wilm
Lenguaje Latino
Cali Colombia
Sur America

Este es el codigo completo

funcion direccion( nombre, empresa, ciudad, pais, continente )


escribir( nombre )
escribir( empresa )
escribir( ciudad .. " " .. pais)
escribir(continente)
fin

direccion("Robinson Coello","Lenguaje Latino","Bruselas","Bélgica","Europa")

direccion("Patricia Wilm","Lenguaje Latino","Cali","Colombia","Sur America")

Una funcion siempre debe estar antes del lugar de donde se hace el llamado

Y el orden de los parametros deben ser respetado

Y asi podemos definir tantas funciones como lo queramos, y cada una con una labor determinada,
pero latino nos facilita la vida y ya los creadores han creado algunas funciones y a estas que viene
instaladas en latino se les llama funciones nativas.

Argumentos
Se pueden crear funciones con un número variable de argumentos con ... en el ultimo parámetro de
la definición.

funcion varArgs(arg1, arg2, ...)


va = [...] #se obtienen los parametros 3 en adelante como una lista y se asi
escribir("parametro 1: " .. arg1) #imprime el parametro 1
escribir("parametro 2: " .. arg2) #imprime el parametro 2
escribir("parametro 3: " .. va[0]) #imprime el parametro 3
retornar arg1 + arg2
fin

#llamada a función varArgs con 2 elementos


r = varArgs(1, 2)
escribir(r)
#salida:
parametro 1: 1
parametro 2: 2
parametro 3: nulo

65
Funciones

#llamada a funcion varArgs con 3 elementos


r = varArgs(1, 2, 3)
escribir(r)
#salida:
parametro 1: 1
parametro 2: 2
parametro 3: 3
3

Funciones nativas

66
Funciones nativas

Funciones nativas
Las funciones nativas son las que viene ya listas para ser usadas y hay de diferentes indole, si quieres
tener una lista de funciones puedes visitar esta web http://documentacion.lenguaje-latino.org/ alli
puedras encontrar para que sirbe cada funcion su uso, sus parametros, etc.

67
Funciones para archivos

Funciones para archivos

68
Funciones Base

Funciones Base

69
Funciones para cadena (texto)

Funciones para cadena (texto)

70
Funciones para conversiones

Funciones para conversiones

71
Funciones para datos

Funciones para datos

72
Funciones para diccionarios

Funciones para diccionarios

73
Funciones para entrada y salida

Funciones para entrada y salida

74
Funciones simples

Funciones simples

75
Expresiones

Expresiones
Expresiones
e = 1
d = 10.05

entero + entero

escribir(e + e) #a 1 se le suma 1 da como resultado 2

entero + decimal

escribir(e + d)
#a 1 se le suma 10.05 da como resultado 11.05

decimal + entero

escribir(d + e) #da como resultado el decimal 11.05

decimal + decimal

escribir(d + d) #da como resultado el decimal 20.1

entero - entero

escribir(e- (-1)) #a 1 se le resta -1 da como resultado 2

entero - decimal

escribir(e- d)
#a 1 se le suma 10.05 da como resultado -9.05

decimal - entero

escribir(d - e) #da como resultado el decimal 9.05

decimal - decimal

escribir(d - 0.05) #da como resultado el decimal 10

entero * entero

escribir(e* e)
#da como resultado el decimal 1

entero * decimal

escribir(e * d)
#da como resultado el decimal 10.05
76
Expresiones

decimal * entero

escribir(d * e) #da como resultado el decimal 10.05

decimal * decimal

escribir(d * 0.5) #da como resultado el decimal 5.025

entero / entero

escribir(e / e) #da como resultado el entero 1

entero / decimal

escribir(e / d)
#da como resultado el decimal 0.099502487562189

decimal / entero

escribir(d / e) #da como resultado el entero 10

decimal / decimal

escribir(d / 0.5) #da como resultado el decimal 20.1

77
Librerias dinamicas

Librerias dinamicas

78
Redis

Redis

79
Instalar en Fedora

Instalar en Fedora
Instalar en fedora

80
Instalar en Fedora

24
Para instalar redis en fedora 24

sudo dnf install redis

Una vez instalado, lo lanzas con

redis-server

Y te dara algo asi:

[robinson@fedora latino-redis]$ redis-server


5673:C 26 Aug 01:37:14.005 # Warning: no config file specified, using the defa
5673:M 26 Aug 01:37:14.006 # You requested maxclients of 10000 requiring at le
5673:M 26 Aug 01:37:14.006 # Server can't set maximum open files to 10032 beca
5673:M 26 Aug 01:37:14.006 # Current maximum open files is 4096. maxclients ha
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 3.2.8 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 5673
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'

5673:M 26 Aug 01:37:14.006 # WARNING: The TCP backlog setting of 511 cannot be
5673:M 26 Aug 01:37:14.006 # Server started, Redis version 3.2.8
5673:M 26 Aug 01:37:14.006 # WARNING overcommit_memory is set to 0! Background
5673:M 26 Aug 01:37:14.007 # WARNING you have Transparent Huge Pages (THP) sup
5673:M 26 Aug 01:37:14.007 * DB loaded from disk: 0.000 seconds
5673:M 26 Aug 01:37:14.007 * The server is now ready to accept connections on

Esto muestra que el servidor de redis esta funcionando, ahora abre el navegador y entra a:

http://localhost:6379/

Si no te da error y vez lo siguiente, estas con redis funcionando

-ERR wrong number of arguments for 'get' command

(poner foto del navegador con redis funcionando)

81
Instalar en Fedora

82
Instalar en Fedora

25

83
Instalar en Fedora

26

84
Instalar en Debian 9

Instalar en Debian 9
Para instalar Redis en Debian

sudo apt-get install redis-server

Una vez instalado lo lanzas con

sudo systemctl start redis

Entras con tu navegador a

http://127.0.0.1:6379

y te mostrara el siguiente mensaje

-ERR wrong number of arguments for 'get' command


-ERR unknown command 'Host:'
-ERR unknown command 'User-Agent:'
-ERR unknown command 'Accept:'
-ERR unknown command 'Accept-Language:'
-ERR unknown command 'Accept-Encoding:'
-ERR unknown command 'Connection:'
-ERR unknown command 'Upgrade-Insecure-Requests:'

Esto nos indica que el Redis esta funcionando

Tambien puedes hacer lo siguiente

ps aux | grep redis

y te mostrara algo parecido a esto:

root@debian:/home/user# ps aux | grep redis


redis 2603 0.0 0.1 40860 2228 ? Ssl 01:55 0:00 /usr/bin/redi
root 2612 0.0 0.0 12784 952 pts/0 S+ 01:55 0:00 grep redis

85
Json

Json

86
Curl

Curl

87
Editores

Editores
Latino en
Latino puedes usarlo desde el más básico de los editores de texto como el bloque de notas, hasta uno
de los más avanzados como el Atom, netbeans, entre otros, acá te presentamos algunos trucos para
trabajar con ellos.

88
Notepad++

Notepad++
Notepad++
Es un editor de texto y si quieres trabajar con Latino puedes colorear el código instalando el plugin
para ello.

En este editor puedes colorear el código para una facil lectura

Web: https://notepad-plus-plus.org/

89
Sublime Text

Sublime Text
Sublime text
Sublime text ( https://www.sublimetext.com/ ) es un IDE (interfase de dearrollo) más que puedes usar
para trabajar con "Latino", sigue los siguientes pasos para colorear el código:

Descargar en https://github.com/lenguaje-latino/latino-sublimetext-plugin
Copiar los archivos LATINO.tmLanguage y LATINO.YAML-tmLanguage
Abrir Sublime Text 3
Menu Preferences > Browse Package..
Pegar los archivos copiados en User
Reiniciar Sublime Text 3

90
Sublime text en Fedora

Sublime text en Fedora

91
Sublime text en Fedora

F 24
Para instalar en Fedora 24 sublime text

Vas a tu home

cd ~

64 bits

wget https://download.sublimetext.com/sublime_text_3_build_3114_x64.tar.bz2

ahora descomprimes

tar -xjvf sublime_text_3_build_3114_x64.tar.bz2

Copiamos los archivos en /opt

sudo mv sublime_text_3 /opt/

Ahora creamos un lanzador del programa

cp /opt/sublime_text_3/sublime_text.desktop ~/.local/share/applications

32 bits

Lo mismo de arriba solo que ahora con esta dirección de descaga y adaptas el resto

https://download.sublimetext.com/sublime_text_3_build_3114_x32.tar.bz2

92
Atom

Atom
Atom
Atom es otro IDE (interfase de desarrollo) y Latino tiene ya la coloración del código con Atom.

Prerequisitos:

Debemos tener instalado Atom, podemos descargar la versión correspondiente para nuestro sistema
operativo desde la página oficial de Atom https://atom.io/

Ahora seguimos las siguientes instrucciones:

Abra su editor de texto Atom


Clic en el menú Archivo->Preferencias (File->Settings) o Editar->Preferencias (Edit->Settings)
dependiendo su sistema operativo
Alli debes buscar el plugin: latino, una vez que lo encuentres
Clic en Instalar (Install)

Como instalar plugin language-latino


Abra un archivo de Latino extension (*.lat)

Podemos observar que ahora nos muestra el resaltado de sintaxis en colores

Puedes ver un video de la instalación aca:

93
Atom

https://www.youtube.com/watch?v=7UgRF9y0czo

Como instalar en maquinas 32 bits

http://www.webupd8.org/2014/06/atom-text-editor-available-for-linux.html

https://askubuntu.com/questions/641239/how-i-can-create-a-32-bit-version-of-atom

https://github.com/atom/atom/blob/master/docs/build-instructions/linux.md

94
Gedit

Gedit
Gedit
Es un editor de texto el cual ya puedes colorear el código de Latino, sigue las instucciones

cd ~
git clone https://github.com/lenguaje-latino/Latino-Gedit-Plugin.git
cd Latino-Gedit-Plugin
chmod +x install.sh
sudo ./install.sh

Después debes escojer el modo de coloración "Latino" en las opciones

Explicación
En si lo que hacemos es copiar el fichero latino.lang en la carpeta

/usr/share/gtksourceview-%/language-specs
o bien en la carpeta personal

~/.local/share/gtksourceview-%/language-specs
Esto hara que Gedit reconosca "Latino" y va a colorear el código

Nota: El simbolo por siento debe ser sustituido por la version de gtk con que se cuenta.

95
Vim

Vim
Vim
Es otro editor de texto el cual puedes colorera tus códigos de Latino con el siguiente plugin

https://github.com/primitivorm/vim-latino

96
Ejercicios

Ejercicios

97
Básicos

Básicos
Básicos
Ejercicio 1

Que dará al ejecutar el siguiente programa?

a = 1
b = 2
a = b

escribir(a)

Ejercico 2

Que dará al ejecutar el siguiente programa?

a = 2
b = 3
c = -b
d = 2*c+a
escribir(d)

Ejercicio 3

Los valores de 'b' en las lineas 1 y 2 son iguales?

b = 5 (1)
a = b (2)

Ejercicio 4

Qué hace el programa siguiente?

a = 0
a = leer()
b = a * 2
escribir(b)

Ejercicio 5

Cuanto vale 'a'?

b = 5
a = -b

Ejercicio 6 Cuanto vale a? ``` b = 5 a = b + (-b)

escribir(a) ```

98
Básicos

99
00-vacio.lat

00-vacio.lat

100
01-comentarios.lat

01-comentarios.lat
###################################################
#Este es un comentario de una linea
#Este es un comentario con espacios al inicio de la linea
#Este es un comentario tabulado
###################################################

//tambien se permiten comentarios de este tipo

/*
y comentarios
multilinea
tambien
*/

101
02-hola.lat

02-hola.lat
hay dos formas de escribir algo en la pantalla

escribir("hola latino")

y la otra es:

poner("hola latino")

Preguntas:

102
03-variables.lat

03-variables.lat
Asignar valores a una variable:

#Error variable "x" no definida


#poner(x)
#ejemplos de declaracion de variables validas
l=cierto
poner(l)
e=10
poner(e)
d=1.5
poner(d)
c='a'
poner(c)
s="hola latino"
poner(s)
s='ahora esta es una literal "hola latino"'
poner(s)
#una constante se define con MAYUSCULAS
PI=3.1416
poner(PI)
#PI=3.14 #error al intentar cambiar el valor

103
Medio

Medio
Medio
1. Escribir un programa que muestre el promedio de dos números enteros, su solución muestra el
resultado y otra guarda el resultado en la variable r
2. Sacar el promedio de tres números
3. Escribir un programa que cambie los valores de dos variables, a = 10, b = 3 y que al final
de como resultado a = 3, b = 10
4. Hacer un programa que cambie los valores de una forma repetitiva hacia la derecha de 4
variables: a = 8 b = 6 c = 4 d = 2 despues de la ejecucion del programa queda así: a
= 2 a = 8 c = 6 d = 4
5.

104
Avanzado

Avanzado
Avanzado

105
notas del autor

notas del autor


Quiero agradecer a todas las personas que han contribuido con el desarrollo de este libro y también al
autor de este lenguaje de programación: Roman Primitivo.

Notas personales

que se borraran en su debido tiempo

sistemas para traduciones

https://www.apertium.org/index.eng.html?dir=spa-eng#translation

Hacer / revisar

Error doble titulo en PDF, ver si pasa lo mimo en los otros formatos

Como colaborar con esta dcumentación

Si deseas colaborar con la elaboracion de esta documentación, primero mira lo que falta, escribe sobre
ello, publicalo en aca http://lenguaje-latino.org/wp-admin/post-new.php (registrate aca ) avisame para
poner tu post en esta documentación.

106
autores

autores
Este libro fue escrito por:
Róbinson E. Coello Sánchez
Bruselas - Bélgica
Email: robincoello@hotmail.com
Tel: +32474624707

Colaboradores:

(pon tus datos si es el caso)

Correcciones realizadas por:


(pon tus datos si es el caso)

Gráficos
(pon tus datos si es el caso)

... otra cosa


(pon tus datos si es el caso)

La versión en linea la puedes encontrar en https://www.gitbook.com/book/robincoello/latino/details

Algunos de los ejemplos aquí mostrados fueron tomados del sitio oficial de 'Latino' (lenguaje-
latino.org), así como de su repositorio en Github (https://github.com/primitivorm/latino).

107