Compiladores, Intérpretes y Algoritmos
Un programa de computadora es un conjunto de instrucciones con un determinado grado de lógica, éstas instrucciones están en un código (llamado de máquina), con el que la computadora trabaja. Cabe mencionar algo que te sonará muy lógico (que incluso, calificarías de idiota), mas sin embargo es algo que a veces se olvida: las computadoras no piensan cuando ejecutan instrucciones, simplemente las ejecutan.
Una computadora no puede entender directamente las instrucciones que le damos, puesto que sólo trabaja con código máquina, para este inconveniente existen 2 principales soluciones:
- Compiladores: son programas que generan código máquina a partir de código escrito (código fuente) en un lenguaje de alto nivel (mismo que se asemeja al lenguaje humano). Los programas que generan son más rápidos que sus equivalentes en máquinas virtuales y es necesario que sean recompilados y a veces, ajustar el código fuente para que trabaje en distintos Sistemas Operativos.
- Intérpretes: como su nombre lo indica, es un programa (llamado máquina virtual) que va leyendo y ejecutando instrucciones una por una. Las máquinas virtuales funcionan en distintos Sistemas Operativos y por lo tanto, no es necesario modifcar el código fuente si se quiere hace funcionar el programa en otro sistema operativo.
La lógica que mencioné antes se llama algoritmo y es la parte fundamental de un programa. La definición más básica de algoritmo es: "una serie finita y ordenada de pasos consecutivos para hacer algo".Existen varias formas de escribir un algoritmo, para motivos prácticos usaré el pseudo código que trata de escribir precisamente estos pasos en un lenguaje, ya sea Español, Inglés, etc. y de forma que te sirva para conceptualizar un proceso.
Las características generales del pseudo código son:
- Puede estar en cualquier lenguaje, ya sea Español, Inglés, Alemán, etc... el objetivo es que TU -y de paso otras personas- entiendan qué va a hacer el algoritmo.
- Las instrucciones que utiliza, son acciones en infinitivo, generalmente se escriben en mayúsculas, ejemplo: LEER, ABRIR, MOSTRAR.
- Se sustituyen los espacios por guiones bajos "_" en palabras que contengan muchas palabras, pero que encierren un concepto, ejemplo: area_de_una_figura_geometrica .
- Se omite el uso se acentos y ñ's (las "ñ" se cambian por "ni"), ejemplo: niño -> ninio.
- Lo que represente un fragmento de texto se denota con comillas, ya sea simples o dobles, ejemplo: "gato", 'perro', "no he jugado Portal 2" .
- Siempre empieza con una instrucción de inicio y termina con una instrucción de fin.
Algoritmo para ir a visitar al novio o a la novia:
INICIO
VARIABLE Nombre_de_interes_romantico
VARIABLE Tiempo_espera
VARIABLE Persona_que_haya_salido
CONSTANTE Casa_propia = "calle 30 de Febrero colonia Inexistente, México, DF"
CONSTANTE Casa_de_posibles_suegros = "calle 31 de Febrero colonia Inexistente, México, DF"
CONSTANTE TIEMPO_ESPERA_MAX = 7200 (segundos)
RECORDAR Nombre_de_interes_romantico
IR_A Casa_de_posibles_suegros
USAR Timbre
INICIO_ESPERAR_HASTA Puerta = ABIERTA
VER Como_crece_el_pasto
Tiempo_espera = Tiempo_espera + 1 (segundo)
SI Tiempo_Espera > TIEMPO_ESPERA_MAX
FAIL
IR_A Casa_propia
FIN
FIN_SI
FIN_ESPERAR_HASTA
COMPROBAR Persona_que_haya_salido
SI Persona_que_haya_salido ES_DIFERENTE Nombre_de_interes_romantico
SALUDAR Persona_que_haya_salido
SINO
PREGUNTAR_POR Nombre_de_interes_romantico
FIN_SI
FIN
Se recomienda el Inglés como idioma porque prácticamente cuando escribes un pseudo código, solo se le hacen unas modificaciones y ya tienes tu código fuente, puesto que la gran mayoría de los lenguajes de programación están en Inglés.
Como puedes ver, el algoritmo desarrollado como un pseudo código te da una idea general de cómo funciona algo, también del ejemplo anterior se puede ver como no es necesario que la palabra FIN esté al final del texto del algoritmo, puede estar en cualquier parte donde creamos sea necesaria. También existen otras herramientas para el diseño de algoritmos, tales como los diagramas de flujo.
Más información (Wikipedia):
- Compiladores, http://es.wikipedia.org/wiki/Compiladores
- Intérpretes, http://es.wikipedia.org/wiki/Int%C3%A9rpretes
- Algoritmo, http://es.wikipedia.org/wiki/Algoritmo
- Diagramas de flujo, http://es.wikipedia.org/wiki/Diagramas_de_flujo
Este blog es genial!!!!!!!!!
ResponderEliminar