El ABC de la programación

ABC, un lenguaje de programación para enseñar programación
Es un lenguaje interactivo fácil de aprender y aún más fácil de usar. Posee cinco tipos de dato:
- números (sin límite de longitud)
- textos (sin límite de longitud)
- compounds (registros sin nombres de campo)
- listas (colecciones ordenadas de algún tipo ó ítem)
- tablas (arreglos generalizados de algún tipo)
El lenguaje es fuertemente tipado pero sin declaraciones, los tipos son determinados según el contexto.
Podría ser mucho más adecuado usar un lenguaje como este en cursos de iniciación a la programación pues:
- Deja tiempo para centrarse en los principios de la programación (al trabajar con principiantes usando un lenguaje como Pascal, C ó Java se pierde más tiempo en detalles del lenguaje que en la programación)
- Proporciona un fuerte soporte para la programación estructurada (es incluso más estructurado que Pascal). Incluye refinamientos para diseño Top-Down, posee poderosos tipos de dato, incluyendo tablas, de modo que los algoritmos pueden ser escritos a un nivel de abstracción suficiente.
- Permite que el alumno desarrolle ejercicios interesantes desde el principio. Con otros lenguajes es problemático plantear ejercicios más allá de rutinarias operaciones con números (sume todos los números del 1 al 100, obtenga todos los primos menores que 100, llene un arreglo con valores enteros, etc. que pueden generar malos hábitos de programación y, muy frecuentemente, desinterés por la programación).
- Los códigos creados en ABC son un quinto en extensión que los implementados con otros lenguajes
- ABC es interactivo (interpretado) eliminando el ciclo editar-compilar-ejecutar de otros lenguajes.
Si lo baja para windows copie la carpeta ABC que hay dentro del RAR hasta la carpeta “C:\Archivos de Programa”.
Para ejecutarlo use alguno de los accesos disponibles dentro de esa carpeta, según su versión de windows (ABC2000, ABCxp, ABC98…desde Windows Vista use ABCxp) pero previamente debe editar el archivo abc.dat y modificar la ruta ya que por defecto viene “Program files”.
Si hace lo recién explicado podrá entrar al entorno de programación ABC y comenzar a manejar el lenguaje.
Como una ayuda al usuario las instrucciones se autocompletan automáticamente a medida que usted escribe bastando pulsar la tecla de tabulación para que sea aceptada, pasando al siguiente elemento de la línea que se está escribiendo. En aquellos lugares de esa línea en que se requiere que usted escriba algún valor ó variable aparece un signo de interrogación).
Pulsando ? y luego Aceptar podrá ver una ayuda muy completa.
Un manual de referencia para conocer sus funciones y sentencias se puede encontrar en:
http://homepages.cwi.nl/~steven/abc/qr.html
A continuación varios ejemplos para que practique:
EJEMPLOS CON NÚMEROS:
- Los números no tiene límite, son almacenados de modo exacto:
mostrará:
10715086071862673209484250490600018105614048117055336074437503883703510511
pues usa representación exacta (¿puede hacer esto en C ó Java?)
- Los números irracionales son expresados con precisión de la máquina:
mostrará:
1.414213562373095 pues respeta la precisión usada por el computador
EJEMPLOS CON TEXTOS:
- Los textos se manejan sin límite:
WRITE risa
mostrará:
ja ja ja jo jo jo pues “ja” se repitió, se elevó a 3 y “jo” también
WRITE #risa
mostrará
18 pues # signfica “longitud de…” y este caso es 18
PUT “Bienvenido!”^^1000 IN saludo
WRITE #saludo
mostrará:
11000 pues la variable tiene longitud 11 y ese valor fué elevada a 1000
mostrará:
Bien pues el símbolo | siginifica extrar subcadena de largo 4
WRITE saludo@4|3
mostrará:
nve pues el símbolo @ significa extraer subcadena “desde posición indicada”
EJEMPLOS CON LISTAS:
- Las listas son valores ordenados de cualquier tipo:
WRITE {1..10}
mostrará:
{1; 2; 3; 4; 5; 6; 7; 8; 9; 10}
PUT {1..10} IN k
REMOVE 5 FROM k
INSERT 4 IN k
INSERT pi IN k
WRITE k
mostrará:
{1; 2; 3; 3.141592653589793; 4; 4; 6; 7; 8; 9; 10}
- Se pueden manejar listas de listas
PUT {} IN w
FOR i IN {1..3}:INSERT {1..i} IN w
WRITE w
mostrará:
{{1}; {1; 2}; {1; 2; 3}} pues a la lista incialmente vacía se fueron agregando lista de largo creciente
FOR j IN w: WRITE j /
mostrará:
{1}
{1; 2}
{1; 2; 3} puse / signfica “bajada de linea”
WRITE #w
mostrará:
3 pues la lista w posee 3 elementos
EJEMPLOS CON COMPUNDS:
PUT (”Raíz cuadrada de 2 es “, root 2) IN c
WRITE c
mostrará:
(”Raíz cuadrada de 2 es “, 1.414213562373095)
PUT c IN nombre, valor
WRITE nombre
mostrará:
Raíz cuadrada de 2 es
WRITE valor
mostrará:
1.414213562373095
EJEMPLOS CON TABLAS:
- Las tablas se parecen a los arreglos, pero el índice puede ser hasta un texto
PUT {} IN tel
PUT 734054 IN tel["Hugo"]
PUT 734098 IN tel["Paco"]
PUT 734134 IN tel["Luis"]
WRITE tel["Paco"]
mostrará:
734098 pues ese el valor guardado en posición “Paco” del arreglo
WRITE tel
mostrará:
{["Hugo"]: 734134; ["Paco"]: 734054; ["Luis"]: 734098}
WRITE keys tel
{”Hugo”; “Paco”; “Luis”}
FOR i IN keys tel: WRITE i, “:”, tel[i] /
mostrará:
Hugo: 734134
Paco: 734054
Luis: 734098
Ultimos 5 artículos escritos por Gaston-Contreras
- Programacion en código ofuscado - 16 September, 2008