BASIC

Introduccin
rev. 14/03/2011
Estos artculos estn dirigidos a quienes me preguntaban cosas sobre programacin de las computadoras hogareas (Home Computers). Hubo quien se ha comprado una vieja gloria de los '80 y quera probar que se siente programar en BASIC. Tambin para aquellos que con buena leche y mucha curiosidad me preguntaban "Que se puede hacer con una ........ en la actualidad" (reemplazar por C=, CZ, MSX, TI 99, etc...) pues nada, jugar o programar. Si de querer programar se trata, es difcil encontrar en la red tutoriales de programacin del BASIC de antao, el interpretado que se programaba con nmeros de lnea. A veces los manuales de las computadoras (esos s se consiguen en museos virtuales) al estar en ingls o ser demasiado especficos cuesta ponerse a aprender.
Para ellos esta serie de artculos.
Gnesis del BASIC
El BASIC es casi el lenguaje de programacin excluyente de las Home Computers, lo idearon John G. Kemeny y Thomas Kurtz, del Dartmouth College de New Hampshire, en la primera mitad de los '60. Su objetivo era disear un lenguaje que fuera sencillo para ensear a sus alumnos a programar (de ah el nombre Beginners All-Purpose Symbolic Instruction Code, algo as como Cdigo de instrucciones simblico para todo propsito para principantes). Cuando se invent no existan todava las computadoras personales, todas eran grandes computadoras con terminales (mainframes).
Conceptos Preliminares
El BASIC como lenguaje tiene una forma estndar, aunque segn las potencialidades de la computadora y los criterios de las empresas desarrolladoras de intrpretes se comenzaron a crear dialectos especficos ajustados a cada modelo de computadora. Desde ya que no es lo mismo el BASIC de las Sinclairs que el de las Commodores, o las MSXs, ni siquiera es similar el BASIC de la Commodore 64 con el de la Commodore 128 ni tampoco con la Commodore 16. Aunque todos los dialectos tienen un tronco comn.
Al igual que cualquier tipo de lenguaje, el BASIC posee un conjunto de normas semnticas y de reglas sintcticas perfectamente definidas que permiten construir un conjunto de indicaciones simples y claras sin dejar lugar a incoherencias con el fin de que la computadora las ponga en ejecucin.
El vocabulario est compuesto por un conjunto de palabras, apcopes y siglas en idioma ingls. Tal como en un lenguaje natural, la unidad de informacin consiste en la oracin que en este caso y en su mayora son de tipo imperativo (rdenes), a cada una de estas oraciones las denominaremos instruccin.
El objeto de cada una de las instrucciones es "educar" a la computadora para que esta realice una determinada (y generalmente simple) tarea.
Agrupando un conjunto de instrucciones (oraciones) es posible indicar una actividad completa mediante el cumplimiento de pequeos pasos que al final cumplirn una tarea compleja con todos sus matices. Este conjunto organizado de instrucciones se denomina programa.
La estructura de las oraciones se mantiene en el lenguaje BASIC como en el lenguaje natural, un verbo es el que define la accin a realizar por el sujeto (la computadora), anlogamente un comando es el que indica la accin que la computadora debe realizar con los datos.
Una instruccin BASIC se compone por dos elementos:
  • un comando (el verbo, la accin)
  • un conjunto de argumentos (datos)
Existen dos tipos de instrucciones en todas las versiones de BASIC interpretados:
- En el primer caso las instrucciones pueden consistir en frases sueltas que dan pi a una respuesta inmediata, en este caso a cada instruccin le sigue una respuesta de parte de la computadora. A este tipo de rdenes inmediatas se las denomina instrucciones directas.
- El otro tipo de instrucciones forma parte de un programa, siempre van asociadas a un nmero de orden (o nmero de lnea) que indica el lugar dentro de la secuencia de ordenes que se ejecutaran en el programa. A esto se denomina instruccin indirecta.
Adems de los verbos que forman las oraciones imperativas, existen un conjunto de palabras que consisten en condicionantes como: si... entonces, mientras, etc. Que forman las denominadas estructuras de control. La estructuras permiten (valga la redundancia) estructurar la forma de ejecucin del programa, estableciendo por ejemplo cuando un conjunto de instrucciones se ejecutarn o no, o la cantidad de veces que se deber repetir una secuencia de instrucciones.
Las oraciones del lenguaje BASIC se forman desde un punto de vista sintctico con palabras y smbolos. Las palabras consisten en un conjunto de caracteres que comienzan siempre con una letra y continan con letras o nmeros en forma ininterrumpida hasta encontrar un separador (el espacio o smbolos como la coma, el punto y coma, etc.) que indican el fin de la palabra. El BASIC contempla 2 tipos de palabras: Las palabras reservadas que son palabras que el BASIC le asigna una interpretacin especial como PRINT, INPUT, etc. Y las Palabras del Usuario o Identificadores que consisten en palabras inventadas por el programador que identifican generalmente a datos que se utilizaran en clculos, o procedimientos desarrollados por el usuario.
Los smbolos tienen una interpretacin especial segn el contexto donde se utilicen, por ejemplo existen los smbolos de operaciones matemticas como adicin (+), substraccin (-), producto (*) o divisin (/) y tambin la potencia (^ o ) segn el dialecto.
Aspecto de un programa BASIC
Como ya hemos visto, un programa es un conjunto de instrucciones que definen una tarea completa. Pero para ampliar el concepto nos deberamos referir primero al concepto de algoritmo. Un Algoritmo es un conjunto ordenado y finito de operaciones que permiten resolver un problema tipo independientemente de los valores particulares que pueda este tomar. Se entiende por ordenado que existe una secuencia de pasos que deben respetarse para que la solucin se realice coherentemente. Por finito se entiende que debe tener resolucin en un plazo determinado (preferiblemente en el corto plazo) o bien indicar que la resolucin no puede ser alcanzada.
Pues bien, se entiende por programar a la realizacin de estas actividades:
  • Primero: Anlisis y comprensin exacta del problema a resolver.
  • Segundo: diseo de un algoritmo que permita encontrar una solucin y que sea lo suficientemente flexible para aplicarse a la mayor cantidad de casos particulares.
  • Tercero: Codificacin de ese algoritmo en un lenguaje que pueda entender la computadora a fin de que ella ejecute las tareas indicadas y obtenga la solucin.
Un programa redactado en lenguaje BASIC posee una estructura determinada siempre por un nmero de orden (o nmero de lnea) que indica en que secuencia se deben ejecutar las instrucciones, no es necesario cargar un programa en forma ordenada, pues la mquina automticamente va ordenando el programa segn el nmero de lnea que corresponde a cada instruccin. Obviamente si escribimos una instruccin utilizando un nmero de lnea que ya exista dentro del programa la computadora sobreescribe la instruccin anterior reemplazndola por la que acabamos de ingresar.
Como sana costumbre, al codificar el programa se acostumbra a numerar cada instruccin utilizando mltiplos de 10, pues si bien debemos tener en claro la forma en que se va a resolver el problema, quizs en el momento de ejecucin notemos la falta de alguna instruccin intermedia para resolver aspectos estticos u omisiones que provoquen errores lgicos.
Luego del nmero de lnea se escribe la instruccin que se deber ejecutar, algunos intrpretes BASIC permiten un carcter separador de instrucciones, generalmente el carcter Dos Puntos ":", en este caso podremos escribir en una nica lnea un conjunto (no muy extenso) de instrucciones que se ejecutaran una tras otra.
Sobre los datos
Cuando mencionbamos "un conjunto de argumentos" nos referamos esencialmente a un conjunto de datos.
Como un conjunto de datos se puede interpretar un conjunto de elementos como por ejemplo:
- Un Literal o constante, que es un dato que aparece directamente escrito en el cdigo del programa como parte integral e inmodificable de l. Por ejemplo si queremos que un programa comience con un texto que diga PROGRAMA DE PRUEBA deberemos escribir el comando de impresin en pantalla ms este literal de la siguiente forma:
10 PRINT "Programa de Prueba"
Obsrvese la utilizacin de comillas antes y despus de escribir la cadena de caracteres, estas comillas no son mas que un delimitador que indica desde donde comienza y donde termina un literal de texto. Los literales y tambin pueden ser valores de otros tipos como nmeros o valores lgicos verdadero/falso.
- Una Variable que consiste en un nombre simblico para un dato que se va a ingresar o calcular y que a priori uno desconoce que valor pueda llegar a tener. Por ejemplo si en un programa queremos que el usuario ingrese su nombre deberemos simbolizar a ese nombre con una variable de tipo carcter (o alfanumrica) entonces se puede utilizar un nombre genrico como NOMBRE$ donde el $ detrs indica que esa variable va a almacenar un contenido de texto. Si por el contrario queremos utilizar la edad de la persona deberemos crear una variable que almacene un nmero, por ejemplo la variable EDAD (aqu no lleva $).
- Una Expresin que consiste en el resultado de una operacin de cualquier tipo, como por ejemplo el resultado de una operacin matemtica: EDAD + 10
Para comprender todos estos conceptos bien vale un ejemplo: si tenemos que hacer un clculo para obtener el valor del dimetro de una circunferencia podemos escribir el siguiente cdigo:
130 LET D = 2 * 3.1415926 * R)

El valor 2 y el 3.1415926 son dos literales en cambio R y D son dos variables, se supone que en un paso previo R debera tomar el valor del Radio de la circunferencia.
LET es un comando que realiza la accin de almacenar un valor en la memoria mediante el uso de una variable.
Y por ltimo, todo lo que est a la derecha del signo igual es en su conjunto una expresin numrica.

Otra particularidad de los datos es que los datos que maneja la computadora deben adaptarse a distintos tipos que son los que la computadora reconoce como tipos primitivos, o sea que tiene definidas operaciones para tratar estos distintos tipos de datos.
Los tipos de datos que puede manejar el BASIC son:
- Numrico entero: cualquier valor numrico en el lmite de -32768 y 32767 en la mayora de computadoras
- Numrico con coma flotante: Un valor con coma con cierta cantidad de cifras de precisin (tan solo se representan los primeros seis o siete dgitos, los dems se redondean )
- Lgicos: puede tomar dos valores Verdadero o Falso.
- Alfanumrico: un string o cadena de caracteres, dicho de otra forma, un conjunto de smbolos que pueden representar un texto o cualquier secuencia de smbolos como una fecha etc. Aunque la computadora tiene definidas pocas operaciones con datos alfanumricos, todas de manejo de textos. Una particularidad a tener en cuenta es que las variables que almacenan datos alfanumricos deben finalizar con el smbolo $.
Intrpretes y compiladores
En un prrafo anterior se hacia mencin a un intrprete BASIC, para aclarar este concepto se debe proceder a explicar la tarea de un traductor de lenguaje en un concepto amplio. Si bien el Lenguaje BASIC es un lenguaje que permite crear programas para la computadora, no es el lenguaje que el hardware maneja. La computadora en si misma es un conjunto de circuitos electrnicos intercomunicados por seales elctricas, el cerebro de la computadora se podra decir que es el microprocesador. El microprocesador entiende un nico lenguaje el llamado lenguaje mquina que es un conjunto de valores numricos binarios que tienen distinta significacin segn el valor que tengan y el lugar que ocupen dentro de un programa. Pues bien, para el ser humano es altamente complicado programar mediante este lenguaje binario. Pero como es virtud de la computadora el procesar datos para obtener informacin, es entonces posible crear un programa que traduzca desde un lenguaje ms "Humano" al fro lenguaje binario del microprocesador, este programa puede hacer la tarea de dos formas, la primera forma seria analizar y traducir un programa en BASIC a fin de armar un nuevo programa en cdigo mquina para que se ejecute en bloque, la segunda forma sera tomar tan solo una oracin (instruccin) por vez, traducirla al lenguaje mquina y ejecutarla antes de realizar la misma tarea con la siguiente instruccin. La primera forma se denomina compilacin y por lo tanto compiladores los programas que realizan la traduccin de una sola vez, la segunda forma se denomina interpretacin y por lo tanto intrpretes a los programas que realizan la traduccin instruccin a instruccin.
La mayor virtud de los compiladores es que generan un programa directo en lenguaje del microprocesador y por lo tanto son mucho ms rpidos que los programas interpretados.
La mayor virtud de los intrpretes es que se puede interrumpir la ejecucin del programa en cualquier momento a fin de revisar la correcta ejecucin paso a paso y observar como se va comportando la computadora a medida que ejecuta el programa para corregir posibles errores de lgica.
Aqu siempre nos referiremos a BASIC interpretado.
Diagramacin y Pseudocdigo
Si bien se alejan un poco de los contenidos de este trabajo, bien vale hacer una pequea referencia acerca de ambas herramientas antes de comenzar el anlisis de los elementos del lenguaje BASIC.
Como mencionbamos, el punto de partida para hacer un programa es definir un algoritmo que permita resolver el problema. Si por algn motivo, como por ejemplo la complejidad del problema, nos dificulta poder organizar y memorizar los pasos que se deben ejecutar, quizs querramos ir escribiendo en un papel el desarrollo. Pues bien podemos utilizar cualquiera de estas dos herramientas que nos ayudarn a ver y plasmar ese algoritmo en forma grfica o en forma de texto.
El proceso de diagramacin consiste en crear un modelo grfico como por ejemplo un diagrama de flujo donde se indique mediante smbolos las acciones que se irn ejecutando este diagrama en forma estndar se debe ir leyendo en forma descendente siguiendo una lnea de conexin entre smbolo y smbolo que indica cual es el orden de ejecucin de cada futura instruccin (de ah el denominado flujo de datos).
Lo importante de los diagramas es que slo existen smbolos para expresar las acciones ms comunes y relevantes de un algoritmo como por ejemplo: Ingreso de datos, mostrar en pantalla, repetir un conjunto de instrucciones, guardar el resultado de un clculo, etc.
El pseudocdigo no es grfico sino que consiste en escribir en el lenguaje natural cada uno de los pasos que se deben ejecutar utilizando verbos en castellano que describan las acciones (comandos) mas comunes del BASIC como por ejemplo los verbos: ingresar, mostrar, repetir, etc. Cada uno de estos verbos se traducir como un comando BASIC en forma casi directa. De ah el nombre de falso (pseudo) cdigo.


Artculos:
Evolucin de las Computadoras
Lenguaje BASIC



Mensajes
Mensaje de: jose
El 25/02/2010, 04:32:23 de aguascalientes Edad 13
Mail: portarap31@hotmail.com Sitio: porta-fan-cesar.es.tl
Nos encontró: en google

a me parece muy bien pero quien fuel creador del pseudocodigo
quisiera saber sobre que lenguajes se utilizaron en las generaciones de las comp. quisiera saber sobre los comandos next, then
Dejar un comentario:

Nombre
El mail debe ser real, te llegará un mail de confirmación que deberás responder para que tu mensaje sea publicado.
pasadas las 24 horas si no hubo confirmación, el mensaje será eliminado.
E-Mail
-

No mostrar la dirección de Mail
Tu sitio Web
Lugar Edad
Como encontraste
esta página
+Opinión? el Mensaje es Privado
Mensaje / Comentario