Download Introducción a la Informática

Document related concepts

MIX (lenguaje de programación) wikipedia , lookup

Little man computer wikipedia , lookup

Lisp wikipedia , lookup

Haxe wikipedia , lookup

Clojure wikipedia , lookup

Transcript
Introducción a
la Informática
Software de la
Computadora
Universidad
Tecnológica de los
Andes
Ing. Ronald Rentería Ayquipa
[INTRODUCCIÓN A LA INFORMÁTICA] UTEA - CPISEI
SOFTWARE DEL COMPUTADOR
REPRESENTACIÓN DIGITAL DE LA INFORMACIÓN
La representación de la información en los computadores digitales persigue dos objetivos: en
primer lugar, procesarla, permitiendo su manipulación eficiente, para lo cual se han ideado
diferentes convenios, de los que veremos los más importantes; y en segundo, asegurarla contra
errores durante su almacenamiento o durante las transmisiones, lo que se consigue incorporando
en la codificación el empleo de la redundancia para detectar y corregir dichos errores.
Información analógica y digital
Las magnitudes continuas son las que pueden adoptar los infinitos valores de un intervalo de
números reales, tales como la longitud de un segmento, velocidad, temperatura, intensidad de un
sonido, etc.
Las magnitudes discretas tienen naturaleza discontinua, tales como la longitud (número de sílabas)
de una palabra, capacidad (número de pasajeros) de un vehículo, etc.
En la práctica, es frecuente que las magnitudes continuas sean tratadas como discretas: el peso de
una persona (que se redondea en kilos); la temperatura (en grados y décimas de grado); la
longitud de un segmento, medida con un dispositivo de precisión hasta los milímetros.
En relación con ambos tipos de magnitud se considera la información analógica, que es de
naturaleza continua, pudiendo tomar infinitos valores; y la información digital, que es de
naturaleza discreta. Aunque esta última puede tomar infinitos valores (IN), en un computador
digital la información es discreta y, además, finita.
En las calculadoras, la digitalización de variables analógicas produce un efecto de redondeo, que
debe ser tenido en cuenta y tratado convenientemente para evitar errores de cálculo; en el
monitor de un ordenador, supone el ajuste de la imagen proyectada sobre una matriz de puntos.
Unidades de información en los sistemas digitales
La razón de ser de un computador es el procesamiento de información. Para poder hablar con
propiedad de este procesamiento, debemos definir unidades de medida que nos permitan
cuantificar de algún modo la acción del computador sobre la información suministrada.
Consideramos las siguientes:
Bit (Binary digit ):
Es la cantidad de información que puede almacenarse en una variable binaria. No hay que
confundir el bit con la variable ni con su valor: una variable binaria es la que puede tomar dos
valores estables: 0 ó 1, blanco o negro, sí o no, etc.
Ing. Ronald Rentería Ayquipa | SOFTWARE DEL COMPUTADOR
2
[INTRODUCCIÓN A LA INFORMÁTICA] UTEA - CPISEI
El bit es la unidad de información matemática más pequeña que puede manejar un ordenador. Es
la forma que tiene el computador para representar los números 0 y 1.
Los computadores se componen de dispositivos electrónicos, por lo que todas sus funciones las
realizan mediante señales eléctricas. Una señal puede estar encendida (activada), lo que
numéricamente representa un 1, o puede estar apagada (desactivada), lo que matemáticamente
simboliza un 0.
Físicamente un bit es un transistor pequeñísimo localizado dentro de una micropastilla (microchip)
de silicio.
La necesidad de codificar informaciones más complejas ha llevado a agrupar varios bits,
apareciendo así las siguientes unidades:
Byte u octeto:
Es la cantidad de información que puede codificarse en 8 bits; representa por tanto 28 = 256
valores.
Un grupo concatenado de 8 bits constituye un byte u octeto. La información que puede
almacenarse en un byte es mucho mayor que aquella correspondiente a un bit. En principio, en un
byte se puede representar cualquier número del 0 al 255, o cualquier tabla de símbolos que
contenga hasta 256 caracteres diferentes. Cada byte se almacena en una celda de memoria
separada, dispuesta ordenadamente dentro del computador.
Uno de los índices para medir la capacidad de un ordenador es el número de bytes existentes en
memoria principal y el número de bytes que pueden almacenarse en las unidades de memoria
auxiliar. Es muy común, para ese tipo de caracterizaciones, el uso de los siguientes múltiplos del
byte:
1 Kilobyte (Kbyte)
1 Megabyte (Mbyte)
1 Gigabyte (Gbyte)
1 Terabyte (Tbyte)
= 210 bytes
= 220 bytes
= 230 bytes
= 240 bytes
= 1024 bytes
= 1024 Kbytes
= 1024 Mbytes
= 1024 Gbytes
Palabra:
Se define en relación con la máquina considerada, como la cantidad de información que la
máquina puede manejar de una sola vez. Para evitar equívocos, se habla de palabras de 8 bits, 16
bits, 32 bits, etc.
Dada la limitada información que puede ser almacenada en un byte, es usual integrar varios bytes
para guardar información utilizable. Esta nueva unidad se llama palabra, y el número de bytes
involucrados en una palabra varía con los diferentes computadores y aplicaciones, siendo las más
comunes las palabras de 1, de 2, de 4, y de 8 bytes.
Ing. Ronald Rentería Ayquipa | SOFTWARE DEL COMPUTADOR
3
[INTRODUCCIÓN A LA INFORMÁTICA] UTEA - CPISEI
Tanto la posición de una palabra dentro de la memoria (dirección), como la información guardada
dentro de ella están descritas en sistema binario.
Sistema binario
El sistema binario, en matemáticas e informática, es un sistema de numeración en el que los
números se representan utilizando solamente las cifras cero y uno (0 y 1). Es el que se utiliza en
las computadoras, debido a que trabajan internamente con dos niveles de voltaje, por lo cual su
sistema de numeración natural es el sistema binario (encendido 1, apagado 0).
Conversión de Decimal a Binario
Se divide el número del sistema decimal entre 2, cuyo resultado entero se vuelve a dividir entre 2,
y así sucesivamente hasta que el dividendo sea menor que el divisor, 2. Es decir, cuando el número
a dividir sea 1 finaliza la división.
A continuación se ordenan los restos empezando desde el último al primero, simplemente se
colocan en orden inverso a como aparecen en la división, se les da la vuelta. Éste será el número
binario que buscamos.
Ejemplo:
Transformar el número decimal 131 en binario. El método es muy simple:
131
65
32
16
8
4
2
1
dividido
dividido
dividido
dividido
dividido
dividido
dividido
dividido
entre
entre
entre
entre
entre
entre
entre
entre
2
2
2
2
2
2
2
2
da
da
da
da
da
da
da
da
65
32
16
8
4
2
1
0
y
y
y
y
y
y
y
y
el
el
el
el
el
el
el
el
resto
resto
resto
resto
resto
resto
resto
resto
es
es
es
es
es
es
es
es
igual
igual
igual
igual
igual
igual
igual
igual
a
a
a
a
a
a
a
a
1
1
0
0
0
0
0
1
-> Ordenamos los restos, del último al primero: 10000011
En sistema binario, 131 se escribe 10000011
Ejemplo:
Transformar el número decimal 100 en binario.
Ing. Ronald Rentería Ayquipa | SOFTWARE DEL COMPUTADOR
4
[INTRODUCCIÓN A LA INFORMÁTICA] UTEA - CPISEI
Conversión de Binario a Decimal
Para realizar la conversión de binario a decimal, realice lo siguiente:
1. Inicie por el lado derecho del número en binario, cada cifra multiplíquela por 2 elevado a
la potencia consecutiva (comenzando por la potencia 0, 20).
2. Después de realizar cada una de las multiplicaciones, sume todas y el número resultante
será el equivalente al sistema decimal.
Ejemplos:
(Los números de arriba indican la potencia a la que hay que elevar 2)
Ing. Ronald Rentería Ayquipa | SOFTWARE DEL COMPUTADOR
5
[INTRODUCCIÓN A LA INFORMÁTICA] UTEA - CPISEI
También se puede optar por utilizar los valores que presenta cada posición del número binario a
ser transformado, comenzando de derecha a izquierda, y sumando los valores de las posiciones
que tienen un 1.
Ejemplo:
El número binario 1010010 corresponde en decimal al 82. Se puede representar de la siguiente
manera:
Entonces se suman los números 64, 16 y 2:
Ejercicios Propuestos:
1. Convertir :





Pasa 10000 MB a GB
Pasa 8 GB a KB
Pasa 4 MB a Bytes
Convertir 67839 GB a KB
78965 MB a bytes.
2. Realizar las siguientes operaciones


Convertir a binario los números decimales 321, 1462, 205, 1023, 1024, 135, 45 y 967
Convertir a decimal los números binarios 111001, 101000, 100000001, 01111000,
0000011 y 10101
Ing. Ronald Rentería Ayquipa | SOFTWARE DEL COMPUTADOR
6
[INTRODUCCIÓN A LA INFORMÁTICA] UTEA - CPISEI
SOFTWARE
Se conoce como software al equipamiento lógico o soporte lógico de un sistema informático,
comprende el conjunto de los componentes lógicos necesarios que hacen posible la realización de
tareas específicas, en contraposición a los componentes físicos, que son llamados hardware.
Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos
asociados que forman parte de las operaciones de un sistema de computación.
Extraído del estándar 729 del IEEE
Clasificación del Software
Si bien esta distinción es, en cierto modo, arbitraria, y a veces confusa, a los fines prácticos se
puede clasificar al software en tres grandes tipos:

Software de sistema: Su objetivo es desvincular adecuadamente al usuario y al
programador de los detalles del sistema informático en particular que se use, aislándolo
especialmente del procesamiento referido a las características internas de: memoria,
discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc. El
software de sistema le procura al usuario y programador adecuadas interfaces de alto
nivel, controladores, herramientas y utilidades de apoyo que permiten el mantenimiento
del sistema global. Incluye entre otros:
o Sistemas operativos
o Controladores de dispositivos
o Herramientas de diagnóstico
o Herramientas de Corrección y Optimización
o Servidores
o Utilidades

Software de programación: Es el conjunto de herramientas que permiten al programador
desarrollar programas informáticos, usando diferentes alternativas y lenguajes de
programación, de una manera práctica. Incluyen básicamente:
o Editores de texto
o Compiladores
o Intérpretes
o Enlazadores
o Depuradores
o Entornos de Desarrollo Integrados (IDE): Agrupan las anteriores herramientas,
usualmente en un entorno visual, de forma tal que el programador no necesite
introducir múltiples comandos para compilar, interpretar, depurar, etc.
Habitualmente cuentan con una avanzada interfaz gráfica de usuario (GUI).
Ing. Ronald Rentería Ayquipa | SOFTWARE DEL COMPUTADOR
7
[INTRODUCCIÓN A LA INFORMÁTICA] UTEA - CPISEI

Software de aplicación: Es aquel que permite a los usuarios llevar a cabo una o varias
tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o
asistido, con especial énfasis en los negocios. Incluye entre muchos otros:
o Aplicaciones para Control de sistemas y automatización industrial
o Aplicaciones ofimáticas
o Software educativo
o Software empresarial
o Bases de datos
o Telecomunicaciones (por ejemplo Internet y toda su estructura lógica)
o Videojuegos
o Software médico
o Software de cálculo Numérico y simbólico.
o Software de diseño asistido (CAD)
o Software de control numérico (CAM)
SISTEMA OPERATIVO
Programa o conjunto de programas que:


Controla todos los recursos de la computadora.
Proporciona la base sobre la cual pueden escribirse todos los programas de aplicación.
Presenta la máquina al usuario como una interfaz o máquina virtual.
Gestiona los recursos de hardware.
Facilita las tareas de programación:




Proporciona lenguaje de control o comandos.
Detecta errores
Facilita operaciones de E/S.
Gestiona operaciones con ficheros.
Gestiona recursos internos de la máquina:



Asignación de recursos.
Resolución de conflictos, prioridades….
Chequeo del sistema.
Ing. Ronald Rentería Ayquipa | SOFTWARE DEL COMPUTADOR
8
[INTRODUCCIÓN A LA INFORMÁTICA] UTEA - CPISEI
Evolución de los Sistemas Operativos
1era. Generación: No existían S.O
2da. Generación: Sistemas de procesamiento por lotes
3era. Generación: Multiprogramación. Tiempo compartido, multitarea. Aparecen los S.O
interactivos y para ordenadores pequeños.
Actualidad: Interfaces gráficos, estándares.
Ejemplos de S.O
MS-DOS, Unix, Windows (3.1, 95, 98, 2000, NT, XP, Vista, 7), Linux, Solaris, Mac OS X
Estructura de niveles de un ordenador
Funciones del Sistema Operativo
Gestión de:




CPU
Memoria
Entrada/Salida
Archivos
Ing. Ronald Rentería Ayquipa | SOFTWARE DEL COMPUTADOR
9
[INTRODUCCIÓN A LA INFORMÁTICA] UTEA - CPISEI
Gestión de la CPU
Dos tipos de sistemas:


Monoprogramados: las operaciones de E/S, lentas, paran la CPU.
Multiprogramados: se aprovechan los tiempos muertos para otras tareas:
o Congelar un trabajo
o Iniciar la operación de E/S
o Ejecutar otro trabajo
Gestión de la Memoria
Un programa debe estar en memoria para ser ejecutado.


El S.O (o parte de él) también debe estar en la memoria.
Puede haber varios programas en memoria
Para esto debe proporcionar mecanismos de gestión de estas zonas.


Asigna espacio en memoria a los procesos cuando éstos la necesiten.
Los libera cuando terminan.
Memoria particionada estática
Memoria particionada dinámica
Memoria paginada
Memoria Virtual:



Parte del programa en memoria principal y parte en memoria secundaria.
Swapping: intercambio de páginas entre memorias principal y secundaria.
La memoria es “virtualmente mayor”.
Gestión de Entrada/Salida
Buscar hacer uso eficiente y transparente al usuario de la Entrada/Salida.
Funciones:




Enviar comandos a los dispositivos de E/S
Detectar interrupciones
Controlar errores
Debe proporcionar una interfaz con los dispositivos y el resto del sistema
Ing. Ronald Rentería Ayquipa | SOFTWARE DEL COMPUTADOR
10
[INTRODUCCIÓN A LA INFORMÁTICA] UTEA - CPISEI
Gestión de Archivos
La información se puede almacenar en dispositivos físicos de almacenamiento. Esta se agrupa y se
le da formato en ficheros o archivos. Estos se guardan ordenadamente en carpetas llamadas
directorios.
Un fichero se identifica por su nombre y por el directorio donde se encuentra.
Funciones del S.O:



Creación de ficheros o directorios
Borrado de ficheros o directorios
Lectura/Escritura, copia
LENGUAJE DE PROGRAMACIÓN
En computación, un programa es una secuencia de instrucciones que permiten a un ordenador
procesar una información conocida como datos de entrada (input) para producir una información
de salida (ouput) o resultados.
Esas instrucciones pertenecen a (o están escritas en) un lenguaje de programación determinado.
Un lenguaje de programación es una construcción mental del ser humano para expresar
programas. Está constituido por un grupo de reglas gramaticales, un grupo de símbolos utilizables,
un grupo de términos monosémicos (es decir, con sentido único) y una regla principal que resume
las demás. Para que ésta construcción mental sea operable en un computador debe existir otro
programa que controle la validez o no de lo escrito. A éste se le llama traductor.
Los lenguajes pueden ser de alto o bajo nivel. En los de bajo nivel las instrucciones son simples y
cercanas al funcionamiento de la máquina, como por ejemplo el código máquina y el
ensamblador. En los lenguajes de alto nivel hay un alto grado de abstracción y el lenguaje es más
próximo a los humanos, como por ejemplo Lexico, PASCAL, Cobol o Java .
Los programas escritos en un lenguaje deben ser "entendidos" por los circuitos físicos de la
máquina para poder ser ejecutados. Según que esta traducción se realice produciendo
previamente o no una versión independiente de la herramienta utilizada los lenguajes se llaman
compilados o interpretados. En el primer caso a la versión independiente producida se le conoce
como código o programa ejecutable, no es legible para el usuario y usualmente se le identifica con
la extensión de nombre .exe (en sistemas Windows). En el segundo caso no se construye otra
versión razón por la cual ha de distribuirse el programa original llamado código o programa fuente
y el usuario debe poseer también la herramienta con la cual se ha programado y que interpreta
ese código.
Ing. Ronald Rentería Ayquipa | SOFTWARE DEL COMPUTADOR
11
[INTRODUCCIÓN A LA INFORMÁTICA] UTEA - CPISEI
Empezaremos con unas definiciones un poco técnicas, pero que son imprescindibles para el
aprendizaje.
Tecnología
Dentro del campo que nos interesa a nosotros, la tecnología tiene el objetivo de eliminar las tareas
repetitivas, facilitando el trabajo y haciéndolo más eficiente así como aumentando la
productividad y los beneficios de la empresa.
Programación
La programación es una de las etapas más importantes del ciclo de vida de un proyecto, y requiere
un método de trabajo. La programación es el resultado de dicho trabajo.
La programación es el instrumento que permite la ejecución de las tareas automatizadas de un
sistema informático.
Las herramientas que utilizaremos para programar son los lenguajes de programación, a través de
las cuales codificaremos los programas.
Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código fuente
de un programa informático se le llama programación.
También la palabra programación se define como el proceso de creación de un programa de
computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:
* El desarrollo lógico del programa para resolver un problema en particular.
* Escritura de la lógica del programa empleando un lenguaje de programación específico
(codificación del programa).
* Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
* Prueba y depuración del programa.
* Desarrollo de la documentación.
Programa
Conjunto de instrucciones entendibles por el ordenador que permiten realizar un trabajo o
resolver un problema.
Un programa debe ser finito, es decir, tiene que tener un inicio y un fin. Tiene que estar bien
confeccionado para que, al introducir un dato, salga una solución y si se volviese a introducir el
mismo dato, saliese de nuevo la misma solución.
Ing. Ronald Rentería Ayquipa | SOFTWARE DEL COMPUTADOR
12
[INTRODUCCIÓN A LA INFORMÁTICA] UTEA - CPISEI
Metodología de la programación
Se entiende como metodología de la programación al conjunto de normas, métodos y anotaciones
que nos indican la forma de programar.
Cada lenguaje de programación sigue una metodología distinta.
Lenguaje de programación
Es un conjunto de reglas semánticas así como sintácticas que los programadores usan para la
codificación de instrucciones de un programa o algoritmo de programación.
Existen varios lenguajes de programación.
Entorno de programación o entorno de desarrollo
Es el conjunto de herramientas utilizadas para la elaboración de un programa.
Recursos
Conjunto de componentes hardware que utilizaremos para la elaboración de un programa (cpu,
disco duro…..).
TIPOS DE LENGUAJES DE PROGRAMACIÓN
Una vez conocidos los conceptos básicos necesarios para el aprendizaje de la programación
podemos empezar a ver los diferentes tipos de lenguajes de programación.
Existen dos tipos de lenguajes claramente diferenciados; los lenguajes de bajo nivel y los de alto
nivel.
El ordenador sólo entiende un lenguaje conocido como código binario o código máquina,
consistente en ceros y unos. Es decir, sólo utiliza 0 y 1 para codificar cualquier acción.
Los lenguajes más próximos a la arquitectura hardware se denominan lenguajes de bajo nivel y los
que se encuentran más cercanos a los programadores y usuarios se denominan lenguajes de alto
nivel.
Lenguajes de bajo nivel
Son lenguajes totalmente dependientes de la máquina, es decir que el programa que se realiza con
este tipo de lenguajes no se pueden migrar o utilizar en otras maquinas.
Al estar prácticamente diseñados a medida del hardware, aprovechan al máximo las
características del mismo.
Ing. Ronald Rentería Ayquipa | SOFTWARE DEL COMPUTADOR
13
[INTRODUCCIÓN A LA INFORMÁTICA] UTEA - CPISEI
Dentro de este grupo se encuentran:
* El lenguaje maquina: este lenguaje ordena a la máquina las operaciones fundamentales para
su funcionamiento. Consiste en la combinación de 0's y 1's para formar las ordenes entendibles
por el hardware de la maquina.
Este lenguaje es mucho más rápido que los lenguajes de alto nivel.
La desventaja es que son bastantes difíciles de manejar y usar, además de tener códigos fuente
enormes donde encontrar un fallo es casi imposible.
* El lenguaje ensamblador es un derivado del lenguaje maquina y está formado por abreviaturas
de letras y números llamadas mnemotécnicos. Con la aparición de este lenguaje se crearon los
programas traductores para poder pasar los programas escritos en lenguaje ensamblador a
lenguaje máquina. Como ventaja con respecto al código máquina es que los códigos fuentes eran
más cortos y los programas creados ocupaban menos memoria. Las desventajas de este lenguaje
siguen siendo prácticamente las mismas que las del lenguaje ensamblador, añadiendo la dificultad
de tener que aprender un nuevo lenguaje difícil de probar y mantener.
Ejemplos de Lenguajes de bajo nivel
* Código máquina
* Ensamblador
Lenguajes de alto nivel
Son aquellos que se encuentran más cercanos al lenguaje natural que al lenguaje máquina.
Están dirigidos a solucionar problemas mediante el uso de EDD's.
Nota: EDD's son las abreviaturas de Estructuras Dinámicas de Datos, algo muy utilizado en todos
los lenguajes de programación. Son estructuras que pueden cambiar de tamaño durante la
ejecución del programa. Nos permiten crear estructuras de datos que se adapten a las
necesidades reales de un programa.
Se tratan de lenguajes independientes de la arquitectura del ordenador. Por lo que, en principio,
un programa escrito en un lenguaje de alto nivel, lo puedes migrar de una máquina a otra sin
ningún tipo de problema.
Estos lenguajes permiten al programador olvidarse por completo del funcionamiento interno de la
maquina/s para la que están diseñando el programa. Tan solo necesitan un traductor que
entiendan el código fuente como las características de la maquina.
Suelen usar tipos de datos para la programación y hay lenguajes de propósito general (cualquier
tipo de aplicación) y de propósito especifico (como FORTRAN para trabajos científicos).
Ejemplos de Lenguajes de alto nivel
Ing. Ronald Rentería Ayquipa | SOFTWARE DEL COMPUTADOR
14
[INTRODUCCIÓN A LA INFORMÁTICA] UTEA - CPISEI
* ADA
* ALGOL
* BASIC
* Clipper
* Cobol
* C++
* FORTH
* Fortran
* Haskell
* Informix 4gl
* Java
* Lexico (con códigos en castellano o sinónimos en otros idiomas)
* Lisp
* Logo
* Modula
* PASCAL
* Prolog
* RPG
* Visual Basic
Lenguajes de Medio nivel
Se trata de un término no aceptado por todos, pero que seguramente habrás oído. Estos lenguajes
se encuentran en un punto medio entre los dos anteriores. Dentro de estos lenguajes podría
situarse C ya que puede acceder a los registros del sistema, trabajar con direcciones de memoria,
todas ellas características de lenguajes de bajo nivel y a la vez realizar operaciones de alto nivel.
Ejemplos de Lenguajes de medio nivel
* BCPL
*C
Lenguajes de programación imperativos y funcionales
Los lenguajes de programación también se dividen en dos grupos principales en base al
procesamiento de sus comandos:
* Lenguajes imperativos;
* Lenguajes funcionales.
Ing. Ronald Rentería Ayquipa | SOFTWARE DEL COMPUTADOR
15
[INTRODUCCIÓN A LA INFORMÁTICA] UTEA - CPISEI
Lenguaje de programación imperativo
Un lenguaje imperativo programa mediante una serie de comandos, agrupados en bloques y
compuestos de órdenes condicionales que permiten al programa retornar a un bloque de
comandos si se cumple la condición. Estos fueron los primeros lenguajes de programación en uso y
aún hoy muchos lenguajes modernos usan este principio.
No obstante, los lenguajes imperativos estructurados carecen de flexibilidad debido a la
secuencialidad de las instrucciones.
Lenguaje de programación funcional
Un lenguaje de programación funcional(a menudo llamado lenguaje procedimental) es un lenguaje
que crea programas mediante funciones, devuelve un nuevo estado de resultado y recibe como
entrada el resultado de otras funciones. Cuando una función se invoca a sí misma, hablamos de
recursividad.
Interpretación y compilación
Los lenguajes de programación pueden, en líneas generales, dividirse en dos categorías:
* Lenguajes interpretados
* Lenguajes compilados
Lenguaje interpretado
Un lenguaje de programación es, por definición, diferente al lenguaje máquina. Por lo tanto, debe
traducirse para que el procesador pueda comprenderlo. Un programa escrito en un lenguaje
interpretado requiere de un programa auxiliar (el intérprete), que traduce los comandos de los
programas según sea necesario.
Lenguaje compilado
Un programa escrito en un lenguaje "compilado" se traduce a través de un programa anexo
llamado compilador que, a su vez, crea un nuevo archivo independiente que no necesita ningún
otro programa para ejecutarse a sí mismo. Este archivo se llama ejecutable.
Un programa escrito en un lenguaje compilado posee la ventaja de no necesitar un programa
anexo para ser ejecutado una vez que ha sido compilado. Además, como sólo es necesaria una
traducción, la ejecución se vuelve más rápida.
Sin embargo, no es tan flexible como un programa escrito en lenguaje interpretado, ya que cada
modificación del archivo fuente (el archivo comprensible para los seres humanos: el archivo a
compilar) requiere de la compilación del programa para aplicar los cambios.
Ing. Ronald Rentería Ayquipa | SOFTWARE DEL COMPUTADOR
16
[INTRODUCCIÓN A LA INFORMÁTICA] UTEA - CPISEI
Por otra parte, un programa compilado tiene la ventaja de garantizar la seguridad del código
fuente. En efecto, el lenguaje interpretado, al ser directamente un lenguaje legible, hace que
cualquier persona pueda conocer los secretos de fabricación de un programa y, de ese modo,
copiar su código o incluso modificarlo. Por lo tanto, existe el riesgo de que los derechos de autor
no sean respetados. Por otro lado, ciertas aplicaciones aseguradas necesitan confidencialidad de
código para evitar las copias ilegales (transacciones bancarias, pagos en línea, comunicaciones
seguras...).
Lenguajes intermediarios
Algunos lenguajes pertenecen a ambas categorías (LISP, Java, Python...) dado que el programa
escrito en estos lenguajes puede, en ciertos casos, sufrir una fase de compilación intermediaria, en
un archivo escrito en un lenguaje ininteligible (por lo tanto diferente al archivo fuente ) y no
ejecutable (requeriría un intérprete). Los applets Java, pequeños programas que a menudo se
cargan en páginas web, son archivos compilados que sólo pueden ejecutarse dentro de un
navegador web (son archivos con la extensión .class).
Generaciones de lenguajes
La evolución de los lenguajes de programación se puede dividir en 5 etapas o generaciones.
* Primera generación: lenguaje maquina.
* Segunda generación: se crearon los primeros lenguajes ensambladores.
* Tercera generación: se crean los primeros lenguajes de alto nivel. Ej. C, Pascal, Cobol…
* Cuarta generación. Son los lenguajes capaces de generar código por si solos, son los llamados
RAD, con lo cuales se pueden realizar aplicaciones sin ser un experto en el lenguaje. Aquí también
se encuentran los lenguajes orientados a objetos, haciendo posible la reutilización d partes del
código para otros programas. Ej. Visual, Natural Adabes…
* Quinta generación: aquí se encuentran los lenguajes orientados a la inteligencia artificial. Estos
lenguajes todavía están poco desarrollados. Ej. LISP
METODOLOGÍAS DE PROGRAMACIÓN
En este artículo y los sucesivos veremos las herramientas y técnicas que nos ayudan a diseñar
algoritmos para la resolución de los problemas en la programación estructurada.
Estructuras de un programa
Ing. Ronald Rentería Ayquipa | SOFTWARE DEL COMPUTADOR
17
[INTRODUCCIÓN A LA INFORMÁTICA] UTEA - CPISEI
Un programa se va a dividir en 3 partes claramente diferenciadas:
* Procesos de entrada
* Proceso de datos
* Procesos de salida
Todo programa está constituido por un conjunto de instrucciones capaces de gestionar un
conjunto de datos.
Algoritmos
Un algoritmo es la descripción abstracta de todas las acciones que debe realizar un ordenador, que
nos conduce a la solución del problema.
Debe ser conciso y detallado, así como finito, pero sobre todo tiene que ser claro y lo más sencillo
posible.
Herramientas y técnicas para el diseño de algoritmos
Para el diseño de algoritmos lo que más se utiliza son los diagramas de flujos.
Diagramas de flujo
Los diagramas de flujo son representaciones gráficas que mediante el uso de símbolos unidos
mediante líneas de flujo, muestran la secuencia lógica que se debe suceder para la solución del
problema.
Los diagramas de flujo deber ser independientes del lenguaje de programación empleado, deben
ser flexibles y sencillos.
Por otro lado tienen que estar normalizados con algún estándar como puede ser el ISO (a nivel
mundial), ANSI (a nivel americano) o el IEEE ( a nivel europeo)
Existen 3 tipos de diagramas de flujos:
* Organigramas: Representación gráfica sencilla con los elementos que representas las entradas
y salida de datos del programa
* Ordinograma: Representación gráfica con secuencias lógicas y detalladas de todos los pasos a
seguir para la resolución del algoritmo.
* Pseudocódigo: Lenguaje intermedio entre el natural y el de programación que representa
mediante la palabra la solución del algoritmo.
Ing. Ronald Rentería Ayquipa | SOFTWARE DEL COMPUTADOR
18
[INTRODUCCIÓN A LA INFORMÁTICA] UTEA - CPISEI
Algunos ejemplos de lenguajes ampliamente usados
A continuación, encontrará una breve lista de los lenguajes de programación actuales:
Lenguaje
Principal área de aplicación
Compilado/interpretado
ADA
Tiempo real
Lenguaje compilado
BASIC
Programación para fines educativos
Lenguaje interpretado
C
Programación de sistema
Lenguaje compilado
C++
Programación de sistema orientado a objeto
Lenguaje compilado
Cobol
Administración
Lenguaje compilado
Fortran
Cálculo
Lenguaje compilado
Java
Programación orientada a Internet
Lenguaje intermediario
MATLAB
Cálculos matemáticos
Lenguaje interpretado
Cálculos matemáticos Cálculos matemáticos
Lenguaje interpretado
LISP
Inteligencia artificial
Lenguaje intermediario
Pascal
Educación
Lenguaje compilado
PHP
Desarrollo de sitios web dinámicos
Lenguaje interpretado
Inteligencia artificial
Inteligencia artificial
Lenguaje interpretado
Perl
Procesamiento de cadenas de caracteres
Lenguaje interpretado
Ing. Ronald Rentería Ayquipa | SOFTWARE DEL COMPUTADOR
19