You are on page 1of 21

ITD

PROGRAMACIÓN I
Trabajo de la Primera Unidad.
Elaborado por: Aldo Axel Alcántar Aguirre

Aldo Axel Alcántar Aguirre 06040718


INSTITUTO TECNOLÓGICO DE DURANGO
PROGRAMACIÓN 1
PROGRAMACIÓN I

Trabajo de la Primera Unidad.


Breve Reseña de la Computación.

Una computadora es una máquina capaz de efectuar una secuencia de


operaciones mediante un programa, de tal manera, que se realice un
procesamiento sobre un conjunto de datos de entrada, obteniéndose otro
conjunto de datos de salida.

Uno de los primeros dispositivos mecánicos para contar fue el ábaco,


cuya historia se remonta a las antiguas civilizaciones griega y romana.
Este dispositivo es muy sencillo, consta de cuentas ensartadas en
varillas que a su vez están montadas en un marco rectangular. Al
desplazar las cuentas sobre varillas, sus posiciones representan valores
almacenados, y es mediante dichas posiciones que este representa y
almacena datos. A este dispositivo no se le puede llamar computadora
por carecer del elemento fundamental llamado programa.

Otro de los inventos mecánicos fue la Pascalina inventada por Blaise


Pascal (1623 - 1662) de Francia y la de Gottfried Wilhelm von Leibniz
(1646 - 1716) de Alemania. Con estas máquinas, los datos se
representaban mediante las posiciones de los engranajes, y los datos se
introducían manualmente estableciendo dichas posiciones finales de las
ruedas, de manera similar a como leemos los números en el
cuentakilómetros de un automóvil.

La primera computadora fue la máquina analítica creada por Charles


Babbage, profesor matemático de la Universidad de Cambridge en el
siglo XIX. La idea que tuvo Charles Babbage sobre un computador nació
debido a que la elaboración de las tablas matemáticas era un proceso
tedioso y propenso a errores. En 1823 el gobierno Británico lo apoyo
para crear el proyecto de una máquina de diferencias, un dispositivo
mecánico para efectuar sumas repetidas.

2
PROGRAMACIÓN I

Mientras tanto Charles Jacquard (francés), fabricante de tejidos, había


creado un telar que podía reproducir automáticamente patrones de
tejidos leyendo la información codificada en patrones de agujeros
perforados en tarjetas de papel rígido. Al enterarse de este método
Babbage abandonó la máquina de diferencias y se dedico al proyecto de
la máquina analítica que se pudiera programar con tarjetas perforadas
para efectuar cualquier cálculo con una precisión de 20 dígitos. La
tecnología de la época no bastaba para hacer realidad sus ideas.

El mundo no estaba listo, y no lo estaría por cien años más.

En 1944 se construyó en la Universidad de Harvard, la Mark I, diseñada


por un equipo encabezado por Howard H. Aiken. Esta máquina no está
considerada como computadora electrónica debido a que no era de
propósito general y su funcionamiento estaba basado en dispositivos
electromecánicos llamados relevadores.

En 1947 se construyó en la Universidad de Pennsylvania la ENIAC


(Electronic Numerical Integrator And Calculator) que fue la primera
computadora electrónica, el equipo de diseño lo encabezaron los
ingenieros John Mauchly y John Eckert. Esta máquina ocupaba todo un
sótano de la Universidad, tenía más de 18 000 tubos de vacío, consumía
200 KW de energía eléctrica y requería todo un sistema de aire
acondicionado, pero tenía la capacidad de realizar cinco mil operaciones
aritméticas en un segundo.

El proyecto, auspiciado por el departamento de Defensa de los Estados


Unidos, culminó dos años después, cuando se integró a ese equipo el
ingeniero y matemático húngaro John von Neumann (1903 - 1957). Las
ideas de von Neumann resultaron tan fundamentales para su desarrollo
posterior, que es considerado el padre de las computadoras.

La EDVAC (Electronic Discrete Variable Automatic Computer) fue


diseñada por este nuevo equipo. Tenía aproximadamente cuatro mil

3
PROGRAMACIÓN I

bulbos y usaba un tipo de memoria basado en tubos llenos de mercurio


por donde circulaban señales eléctricas sujetas a retardos.

La idea fundamental de von Neumann fue: permitir que en la memoria


coexistan datos con instrucciones, para que entonces la computadora
pueda ser programada en un lenguaje, y no por medio de alambres que
eléctricamente interconectaban varias secciones de control, como en la
ENIAC.

Todo este desarrollo de las computadoras suele divisarse por


generaciones y el criterio que se determinó para determinar el cambio
de generación no está muy bien definido, pero resulta aparente que
deben cumplirse al menos los siguientes requisitos:

 La forma en que están construidas.


 Forma en que el ser humano se comunica con ellas.

Primera Generación.

En esta generación había una gran desconocimiento de las capacidades


de las computadoras, puesto que se realizó un estudio en esta época
que determinó que con veinte computadoras se saturaría el mercado de
los Estados Unidos en el campo de procesamiento de datos.

Esta generación abarco la década de los cincuenta. Y se conoce como la


primera generación. Estas máquinas tenían las siguientes
características:

 Estas máquinas estaban construidas por medio de tubos de vacío.


 Eran programadas en lenguaje de máquina.

En esta generación las máquinas son grandes y costosas (de un costo


aproximado de ciento de miles de dólares).

4
PROGRAMACIÓN I

En 1951 aparece la UNIVAC (NIVersAl Computer), fue la primera


computadora comercial, que disponía de mil palabras de memoria
central y podían leer cintas magnéticas, se utilizó para procesar el censo
de 1950 en los Estados Unidos.

En las dos primeras generaciones, las unidades de entrada utilizaban


tarjetas perforadas, retomadas por Herman Hollerith (1860 - 1929),
quien además fundó una compañía que con el paso del tiempo se
conocería como IBM (International Bussines Machines).

Después se desarrolló por IBM la IBM 701 de la cual se entregaron 18


unidades entre 1953 y 1957.

Posteriormente, la compañía Remington Rand fabricó el modelo 1103,


que competía con la 701 en el campo científico, por lo que la IBM
desarrollo la 702, la cual presentó problemas en memoria, debido a esto
no duró en el mercado.

La computadora más exitosa de la primera generación fue la IBM 650,


de la cual se produjeron varios cientos. Esta computadora que usaba un
esquema de memoria secundaria llamado tambor magnético, que es el
antecesor de los discos actuales.

Otros modelos de computadora que se pueden situar en los inicios de la


segunda generación son: la UNIVAC 80 y 90, las IBM 704 y 709,
Burroughs 220 y UNIVAC 1105.

Segunda Generación.

Cerca de la década de 1960, las computadoras seguían evolucionando,


se reducía su tamaño y crecía su capacidad de procesamiento. También
en esta época se empezó a definir la forma de comunicarse con las
computadoras, que recibía el nombre de programación de sistemas.

Las características de la segunda generación son las siguientes:

 Están construidas con circuitos de transistores.


 Se programan en nuevos lenguajes llamados lenguajes de alto
nivel.

En esta generación las computadoras se reducen de tamaño y son de


menor costo. Aparecen muchas compañías y las computadoras eran
bastante avanzadas para su época como la serie 5000 de Burroughs y la
ATLAS de la Universidad de Manchester.

5
PROGRAMACIÓN I

Algunas de estas computadoras se programaban con cintas perforadas y


otras más por medio de cableado en un tablero. Los programas eran
hechos a la medida por un equipo de expertos: analistas, diseñadores,
programadores y operadores que se manejaban como una orquesta
para resolver los problemas y cálculos solicitados por la administración.
El usuario final de la información no tenía contacto directo con las
computadoras. Esta situación en un principio se produjo en las primeras
computadoras personales, pues se requería saberlas "programar"
(alimentarle instrucciones) para obtener resultados; por lo tanto su uso
estaba limitado a aquellos audaces pioneros que gustaran de pasar un
buen número de horas escribiendo instrucciones, "corriendo" el
programa resultante y verificando y corrigiendo los errores o bugs que
aparecieran. Además, para no perder el "programa" resultante había
que "guardarlo" (almacenarlo) en una grabadora de casette, pues en
esa época no había discos flexibles y mucho menos discos duros para
las PC; este procedimiento podía tomar de 10 a 45 minutos, según el
programa. El panorama se modificó totalmente con la aparición de las
computadoras personales con mejore circuitos, más memoria, unidades
de disco flexible y sobre todo con la aparición de programas de
aplicación general en donde el usuario compra el programa y se pone a
trabajar. Aparecen los programas procesadores de palabras como el
célebre Word Star, la impresionante hoja de cálculo (spreadsheet)
Visicalc y otros más que de la noche a la mañana cambian la imagen de
la PC. El software empieza a tratar de alcanzar el paso del hardware.
Pero aquí aparece un nuevo elemento: el usuario.

El usuario de las computadoras va cambiando y evolucionando con el


tiempo. De estar totalmente desconectado a ellas en las máquinas
grandes pasa la PC a ser pieza clave en el diseño tanto del hardware
como del software. Aparece el concepto de human interface que es la
relación entre el usuario y su computadora. Se habla entonces de
hardware ergonómico (adaptado a las dimensiones humanas para
reducir el cansancio), diseños de pantallas antirreflejos y teclados que
descansen la muñeca. Con respecto al software se inicia una verdadera
carrera para encontrar la manera en que el usuario pase menos tiempo
capacitándose y entrenándose y más tiempo produciendo. Se ponen al
alcance programas con menús (listas de opciones) que orientan en todo
momento al usuario (con el consiguiente aburrimiento de los usuarios
expertos); otros programas ofrecen toda una artillería de teclas de
control y teclas de funciones (atajos) para efectuar toda suerte de
efectos en el trabajo (con la consiguiente desorientación de los usuarios
novatos). Se ofrecen un sinnúmero de cursos prometiendo que en pocas
semanas hacen de cualquier persona un experto en los programas
comerciales. Pero el problema "constante" es que ninguna solución para

6
PROGRAMACIÓN I

el uso de los programas es "constante". Cada nuevo programa requiere


aprender nuevos controles, nuevos trucos, nuevos menús. Se empieza a
sentir que la relación usuario-PC no está acorde con los desarrollos del
equipo y de la potencia de los programas. Hace falta una relación
amistosa entre el usuario y la PC.

Las computadoras de esta generación fueron: la Philco 212 (esta


compañía se retiró del mercado en 1964) y la UNIVAC M460, la Control
Data Corporation modelo 1604, seguida por la serie 3000, la IBM mejoró
la 709 y sacó al mercado la 7090, la National Cash Register empezó a
producir máquinas para proceso de datos de tipo comercial, introdujo el
modelo NCR 315.

La Radio Corporation of America introdujo el modelo 501, que manejaba


el lenguaje COBOL, para procesos administrativos y comerciales.
Después salió al mercado la RCA 601.

Tercera generación

Con los progresos de la electrónica y los avances de comunicación con


las computadoras en la década de los 1960, surge la tercera
generación de las computadoras. Se inaugura con la IBM 360 en abril
de 1964.3

Las características de esta generación fueron las siguientes:

 Su fabricación electrónica está basada en circuitos integrados.


 Su manejo es por medio de los lenguajes de control de los
sistemas operativos.

La IBM produce la serie 360 con los modelos 20, 22, 30, 40, 50, 65, 67,
75, 85, 90, 195 que utilizaban técnicas especiales del procesador,
unidades de cinta de nueve canales, paquetes de discos magnéticos y

7
PROGRAMACIÓN I

otras características que ahora son estándares (no todos los modelos
usaban estas técnicas, sino que estaba dividido por aplicaciones).

El sistema operativo de la serie 360, se llamó OS que contaba con varias


configuraciones, incluía un conjunto de técnicas de manejo de memoria
y del procesador que pronto se convirtieron en estándares.

En 1964 CDC introdujo la serie 6000 con la computadora 6600 que se


consideró durante algunos años como la más rápida.

En la década de 1970, la IBM produce la serie 370 (modelos 115, 125,


135, 145, 158, 168). UNIVAC compite son los modelos 1108 y 1110,
máquinas en gran escala; mientras que CDC produce su serie 7000 con
el modelo 7600. Estas computadoras se caracterizan por ser muy
potentes y veloces.

A finales de esta década la IBM de su serie 370 produce los modelos


3031, 3033, 4341. Burroughs con su serie 6000 produce los modelos
6500 y 6700 de avanzado diseño, que se reemplazaron por su serie
7000. Honey - Well participa con su computadora DPS con varios
modelos.

A mediados de la década de 1970, aparecen en el mercado las


computadoras de tamaño mediano, o minicomputadoras que no son
tan costosas como las grandes (llamadas también como mainframes
que significa también, gran sistema), pero disponen de gran capacidad
de procesamiento. Algunas minicomputadoras fueron las siguientes: la
PDP - 8 y la PDP - 11 de Digital Equipment Corporation, la VAX (Virtual
Address eXtended) de la misma compañía, los modelos NOVA y ECLIPSE
de Data General, la serie 3000 y 9000 de Hewlett - Packard con varios
modelos el 36 y el 34, la Wang y Honey - Well -Bull, Siemens de origen
alemán, la ICL fabricada en Inglaterra. En la Unión Soviética se utilizó la
US (Sistema Unificado, Ryad) que ha pasado por varias generaciones.

8
PROGRAMACIÓN I

Cuarta Generación

Aquí aparecen los microprocesadores que es un gran adelanto de la


microelectrónica, son circuitos integrados de alta densidad y con una
velocidad impresionante. Las microcomputadoras con base en estos
circuitos son extremadamente pequeñas y baratas, por lo que su uso se
extiende al mercado industrial. Aquí nacen las computadoras personales
que han adquirido proporciones enormes y que han influido en la
sociedad en general sobre la llamada "revolución informática".

En 1976 Steve Wozniak y Steve Jobs inventan la primera


microcomputadora de uso masivo y más tarde forman la compañía
conocida como la Apple que fue la segunda compañía más grande del
mundo, antecedida tan solo por IBM; y esta por su parte es aún de las
cinco compañías más grandes del mundo.

En 1981 se vendieron 800 00 computadoras personales, al siguiente


subió a 1 400 000. Entre 1984 y 1987 se vendieron alrededor de 60
millones de computadoras personales, por lo que no queda duda que su
impacto y penetración han sido enormes.

Con el surgimiento de las computadoras personales, el software y los


sistemas que con ellas de manejan han tenido un considerable avance,
porque han hecho más interactiva la comunicación con el usuario.
Surgen otras aplicaciones como los procesadores de palabra, las hojas
electrónicas de cálculo, paquetes gráficos, etc. También las industrias
del Software de las computadoras personales crece con gran rapidez,
Gary Kildall y William Gates se dedicaron durante años a la creación de
sistemas operativos y métodos para lograr una utilización sencilla de las
microcomputadoras (son los creadores de CP/M y de los productos de
Microsoft).

9
PROGRAMACIÓN I

No todo son microcomputadoras, por supuesto, las minicomputadoras y


los grandes sistemas continúan en desarrollo. De hecho las máquinas
pequeñas rebasaban por mucho la capacidad de los grandes sistemas de
10 o 15 años antes, que requerían de instalaciones costosas y
especiales, pero sería equivocado suponer que las grandes
computadoras han desaparecido; por el contrario, su presencia era ya
ineludible en prácticamente todas las esferas de control gubernamental,
militar y de la gran industria. Las enormes computadoras de las series
CDC, CRAY, Hitachi o IBM por ejemplo, eran capaces de atender a varios
cientos de millones de operaciones por segundo.

Quinta Generación.

En vista de la acelerada marcha de la microelectrónica, la sociedad


industrial se ha dado a la tarea de poner también a esa altura el
desarrollo del software y los sistemas con que se manejan las
computadoras. Surge la competencia internacional por el dominio del
mercado de la computación, en la que se perfilan dos líderes que, sin
embargo, no han podido alcanzar el nivel que se desea: la capacidad de
comunicarse con la computadora en un lenguaje más cotidiano y no a
través de códigos o lenguajes de control especializados.

Japón lanzó en 1983 el llamado "programa de la quinta generación de


computadoras", con los objetivos explícitos de producir máquinas con
innovaciones reales en los criterios mencionados. Y en los Estados
Unidos ya está en actividad un programa en desarrollo que persigue
objetivos semejantes, que pueden resumirse de la siguiente manera:

 Procesamiento en paralelo mediante arquitecturas y diseños


especiales y circuitos de gran velocidad.
 Manejo de lenguaje natural y sistemas de inteligencia artificial.

El futuro previsible de la computación es muy interesante, y se puede


esperar que esta ciencia siga siendo objeto de atención prioritaria de
gobiernos y de la sociedad en conjunto.

10
PROGRAMACIÓN I

Impacto de las Computadoras en la Sociedad.

En los últimos años, el fuerte incremento que se ha venido dando en la


utilización de las computadoras, es fácilmente observable en profesiones
tan diversas como la medicina, la educación, la ingeniería, la
arquitectura, la administración, etc. o en sectores como el gobierno, la
industria, la banca, el comercio, etc., lo cual se debe a que estos cada
vez más pequeños y novedosos artículos tienen como virtud principal
procesar con mucha facilidad y a gran velocidad enormes volúmenes de
información.

La informática ha entrado en todo los niveles de la vida cotidiana. En el


hogar, microprocesadores están ya controlando videograbadoras,
hornos de microondas, y hasta lavadoras. Las computadoras personales
no sólo se utilizan para entretenimiento: cada vez es mayor el número
de personas, especialmente profesionales, que están utilizando
computadoras personales para trabajar desde casa, en ocasiones hasta
en forma permanente. En la escuela, las computadoras han llegado al
salón de clase, donde una nueva generación de jóvenes crece sabiendo
más sobre computadoras que la generación de sus padres, y en
ocasiones, más que sus maestros. La computadora personal ha entrado
en la oficina, donde la informática está reemplazando el papeleo y
mejorando la productividad, el servicio al cliente, y para algunos, la
satisfacción en el trabajo. Bancos, negocios y servicios financieros se
están transformando mediante la informática, debido a que el dinero, a
fin de cuentas, es meramente información. Ningún tipo de servicio
comercial o público a permanecido libre de la nueva tecnología
informática. En las fábricas, las computadoras se han involucrado cada
vez más en el proceso de manufactura. Los nuevos sistemas CAD/CAM,
utilizando robots, han hecho una realidad factible a la fábrica sin
trabajadores.

Por ahora, es difícil estimar el impacto de la nueva tecnología


informática sobre las oportunidades futuras de trabajo, debido a que
aún no sabemos cómo va a proceder el cambio. Ciertamente, es difícil
prever cómo se van a generar nuevas oportunidades de empleo para
reemplazar las pérdidas en las industrias de manufactura tradicionales.
Si la tecnología informática ha de servir como elemento de cambio a las
economías de países industrializados para generar nuevo crecimiento,
entonces debe enfocarse en la creación de nuevas fuentes de trabajo, y
en un número razonable de empleos. Actualmente, se tiene
conocimiento de la situación en algunos lugares de trabajo, en los que la
tecnología informática ofrece oportunidades de enriquecer empleos y
desarrollar nuevas formas de organización laboral, transformando las
11
PROGRAMACIÓN I

relaciones laborales tradicionales. La situación que emerge es variada:


va desde la situación en que la pérdida de habilidades y control, que
indudablemente ha ocurrido en algunos sectores, provoca el temor de
que el trabajador del futuro se vea degradado frente a la computadora,
en lugar de apoyado por ella, hasta el otro extremo, en el que la
satisfacción en el trabajo se ha mejorado claramente mediante el uso de
la computadora. La diferencia entre ambos extremos depende en mucho
de la forma en que la introducción de la tecnología se realice, así como
de los cambios y sus respuestas a una serie de problemas
esencialmente políticos. Aún cuando formalmente la industria parece
haber optado por no tomar parte, el futuro del empleo parece ser
todavía una cuestión relativa a la introducción de tecnología.

Del mismo modo, nuevas formas de crimen mediante computadoras


surgen y necesita ser entendidas y analizadas, y más recursos
dedicados a su detección. El crecimiento de las bases de datos e
información está creando un temor generalizado de pérdida de
privacidad, haciendo patente la necesidad cada vez mayor de leyes para
una adecuada protección de datos e información. Esto podría restringir
el uso de información personal por parte de las compañías de tarjetas
de crédito, telefónicas, de correo, de ventas, y hasta organizaciones
políticas.

A nivel global, es necesario considerar y analizar el impacto social y


económico de la tecnología informática sobre los países del Tercer
Mundo, como una posible vía para disminuir las diferencias Norte-Sur.
Por un lado, algunos expertos opinan que, basadas en el desarrollo de
tecnología informática, las naciones menos desarrolladas tiene una
oportunidad de aventajar a los países más industrializados. Sin
embargo, otros expertos proponen contrariamente que la tecnología
informática contribuirá más probablemente a solo incrementar la
obsolescencia de las industrias, servicios y estrategias de desarrollo del
Tercer Mundo.

Definiciones.

Lenguaje de alto nivel.- Se caracterizan por expresar los algoritmos


de una manera adecuada a la capacidad cognitiva humana, en lugar de
a la capacidad ejecutora de las máquinas. En los primeros lenguajes de
alto nivel la limitación era que se orientaban a un área específica y sus
instrucciones requerían de una sintaxis predefinida. Se clasifican como
lenguajes procedimentales. Otra limitación de los lenguajes de alto nivel
es que se requiere de ciertos conocimientos de programación para
realizar las secuencias de instrucciones lógicas. Los lenguajes de muy

12
PROGRAMACIÓN I

alto nivel se crearon para que el usuario común pudiese solucionar tal
problema de procesamiento de datos de una manera más fácil y rápida.

La programación en un lenguaje de bajo nivel como el lenguaje de la


máquina o el lenguaje simbólico tiene ciertas ventajas:

 Mayor adaptación al equipo.


 Posibilidad de obtener la máxima velocidad con mínimo uso de
memoria.

Pero también tiene importantes inconvenientes:

 Imposibilidad de escribir código independiente de la máquina.


 Mayor dificultad en la programación y en la comprensión de los
programas.

Por esta razón, a finales de los años 1950 surgió un nuevo tipo de
lenguaje que evitaba los inconvenientes, a costa de ceder un poco en las
ventajas.

Estos lenguajes se llaman "de tercera generación" o "de alto nivel", en


contraposición a los "de bajo nivel" o "de nivel próximo a la máquina".

Principales lenguajes de alto nivel.

* Ada * Clipper * Object * Ruby


Pascal
* ALGOL * COBOL * MATLAB
* Pascal
* Basic * Fortran * SISTEMA
* Perl BERNAL ITM
*C * Java
* PHP * Modula-2
* C++ * Lexico
* PL/SQL * Lenguajes
* C# * Logo funcionales.
* Python

13
PROGRAMACIÓN I

Lenguaje de bajo nivel.- Un lenguaje de programación de bajo nivel


es el que proporciona poca o ninguna abstracción del microprocesador
de un ordenador. Consecuentemente es fácilmente trasladado a
lenguaje de máquina.

La palabra "bajo" no implica que el lenguaje sea inferior a un lenguaje


de alto nivel; se refiere a la reducida abstracción entre el lenguaje y el
hardware.

Uso: ventajas e inconvenientes.

En general se utiliza este tipo de lenguaje para programar controladores


(drivers).

La programación en un lenguaje de bajo nivel como el lenguaje de la


máquina o el lenguaje simbólico tiene ciertas ventajas:

 Mayor adaptación al equipo.


 Posibilidad de obtener la máxima velocidad con mínimo uso de
memoria.

Pero también tiene importantes inconvenientes:

 Imposibilidad de escribir código independiente de la máquina.


 Mayor dificultad en la programación y en la comprensión de los
programas.
 El programador debe conocer más de un centenar de
instrucciones.
 En necesario conocer en detalle la arquitectura de la máquina.

Características

 Se trabaja a nivel de instrucciones, es decir, su programación es


al más fino detalle.
 Está orientado a la máquina.

Primera generación.

El lenguaje de programación de primera generación (por sus siglas en


inglés, 1GL), es el lenguaje de código máquina. Es el único lenguaje que
un microprocesador entiende de forma nativa. El lenguaje máquina no
puede ser escrito o leído usando un editor de texto, y por lo tanto es
raro que una persona lo use directamente.

14
PROGRAMACIÓN I

Segunda generación.

El lenguaje de programación de segunda generación (por sus siglas en


inglés, 2GL), es el lenguaje ensamblador. Se considera de segunda
generación porque, aunque no es lenguaje nativo del microprocesador,
un programador de lenguaje ensamblador debe conocer la arquitectura
del microprocesador (como por ejemplo las particularidades de sus
registros o su conjunto de instrucciones).

Lenguaje ensamblador.- Es un tipo de lenguaje de bajo nivel utilizado


para escribir programas informáticos, y constituye la representación
más directa del código máquina específico para cada arquitectura de
computadoras legible por un programador.

Fue usado ampliamente en el pasado para el desarrollo de software,


pero actualmente sólo se utiliza en contadas ocasiones, especialmente
cuando se requiere la manipulación directa del hardware o se pretenden
rendimientos inusuales de los equipos.

Lenguaje de máquina.- Es el sistema de códigos directamente


interpretable por un circuito microprogramable, como el
microprocesador de un ordenador o el microcontrolador de un autómata
(un PLC) . Este lenguaje está compuesto por un conjunto de
instrucciones que determinan acciones a ser tomadas por la máquina.
Un programa de computadora consiste en una cadena de estas
instrucciones de lenguaje de máquina (más los datos). Estas
instrucciones son normalmente ejecutadas en secuencia, con eventuales
cambios de flujo causados por el propio programa o eventos externos. El
lenguaje de máquina es específico de cada máquina o arquitectura de la
máquina, aunque el conjunto de instrucciones disponibles pueda ser
similar entre ellas.

Compilador.- Es un programa que, a su vez, traduce un programa


escrito en un lenguaje de programación a otro lenguaje de
programación, generando un programa equivalente. Usualmente el
segundo lenguaje es código máquina, pero también puede ser
simplemente texto. Este proceso de traducción se conoce como
compilación.

La razón principal para querer usar un compilador es querer traducir un


programa de un lenguaje de alto nivel, a otro lenguaje de nivel inferior
(típicamente lenguaje máquina). De esta manera un programador puede
diseñar un programa en un lenguaje mucho más cercano a cómo piensa.

15
PROGRAMACIÓN I

un ser humano, para luego compilarlo a un programa más manejable


por una computadora.

Traductor.- Un programa que traduce otros programas desde un


lenguaje de alto nivel a otro de bajo nivel, dividiéndose en dos tipos:
compilador o intérprete.

Sistema Numérico.- Es un conjunto de símbolos y reglas de


generación que permiten construir todos los números válidos en el
sistema. Un sistema de numeración puede representarse como N = S +
R donde:

 N es el sistema de numeración considerado


 S son los símbolos permitidos en el sistema. En el caso del
sistema decimal son {0,1...9}; en el binario son {0,1}; en el octal
son {0,1...7}; en el hexadecimal son {0,1...9,A,B,C,D,E,F}
 R son las reglas de generación que nos indican qué números son
válidos y cuáles son no-válidos en el sistema.

Estas reglas son diferentes para cada sistema de numeración


considerado, pero una regla común a todos es que para construir
números válidos en un sistema de numeración determinado sólo se
pueden utilizar los símbolos permitidos en ese sistema (para indicar el
sistema de numeración utilizado se añade como subíndice al número).

Arquitectura de los computadores.- Es el diseño conceptual y la


estructura operacional fundamental de un sistema de computadora. Es
decir es un modelo y una descripción funcional de los requerimientos y
las implementaciones de diseño para varias partes de una computadora,
con especial interés en la forma en que la unidad central de proceso
(CPU) trabaja internamente y accede a las direcciones de memoria.
También suele definirse como la forma de seleccionar e interconectar
componentes de hardware para crear computadoras según los
requerimientos de funcionalidad, rendimiento y costo.

Sistema Operativo.- Es un programa destinado a permitir la


comunicación del usuario con un computador y gestionar sus recursos
de una forma eficaz. Comienza a trabajar cuando se enciende el
computador, y gestiona el hardware de la máquina desde los niveles
más básicos. Un sistema operativo se puede encontrar normalmente en
la mayoría de los aparatos electrónicos que utilicen microprocesadores
para funcionar, ya que gracias a estos podemos entender la máquina y
que ésta cumpla con sus funciones (teléfonos móviles, reproductores de
DVD, computadoras, etc.).

16
PROGRAMACIÓN I

Descripción de Tipos de Programación.

Programación estructurada.- Es una forma de escribir programación


de ordenador de forma clara, para ello utiliza únicamente tres
estructuras: secuencial, selectiva e iterativa; siendo innecesario y no
permitiéndose el uso de la instrucción o instrucciones de transferencia
incondicional (GOTO).

Surgimiento de la programación estructurada.

A finales de los años sesenta surgió una nueva forma de programar que
no solamente daba lugar a programas fiables y eficientes, sino que
además estaban escritos de manera que facilitaba su comprensión
posterior.

Un famoso Teorema de Dijkstra, demostrado por Edsger Dijkstra en los


años sesenta, demuestra que todo programa puede escribirse utilizando
únicamente las tres instrucciones de control siguientes:

* Secuencia

* Instrucción condicional.

* Iteración, o bucle de instrucciones.

Solamente con estas tres estructuras se puede hacer un programa


informático, ver por ejemplo Pseudocódigo, si bien los lenguajes de
programación, y sus compiladores, tienen un repertorio de estructuras
de control mayor.

Ventajas de la programación estructurada.

Con la programación estructurada, elaborar programas de computador


sigue siendo una labor que demanda esfuerzo, creatividad, habilidad y
cuidado. Sin embargo, con este estilo podemos obtener las siguientes
ventajas:

1. Los programas son más fáciles de entender, ya que pueden ser leído
de forma secuencial, sin necesidad de hacer seguimiento a saltos de
línea (GOTO) dentro bloques de código para entender la lógica.

2. La estructura del programa es más clara puesto que las instrucciones


están más ligadas o relacionadas entre sí.

17
PROGRAMACIÓN I

3. Reducción del esfuerzo en las pruebas. El seguimiento de las fallas


("debugging") se facilita debido a la lógica más visible, por lo que los
errores se pueden detectar y corregir más fácilmente.

4. Reducción de los costos de mantenimiento.

5. Programas más sencillos y más rápidos.

6. Los bloques de código son auto explicativos, lo que apoya a la


documentación.

Inconvenientes de la programación estructurada.

El principal inconveniente de este método de programación, es que se


obtiene un único bloque de programa, que cuando se hace demasiado
grande puede resultar problemático su manejo, esto se resuelve
empleando la programación modular, definiendo módulos
interdependientes programados y compilados por separado. Un método
un poco más sofisticado es la programación por capas, en la que los
módulos tienen una estructura jerárquica muy definida y se denominan
capas.

Programación Orientada a Objetos.- es un paradigma de


programación que define los programas en términos de "clases de
objetos", objetos que son entidades que combinan estado (es decir,
datos), comportamiento (esto es, procedimientos o métodos) e
identidad (propiedad del objeto que lo diferencia del resto). La
programación orientada a objetos expresa un programa como un
conjunto de estos objetos, que colaboran entre ellos para realizar
tareas. Esto permite hacer los programas y módulos más fáciles de
escribir, mantener y reutilizar. De esta forma, un objeto contiene toda la
información, (los denominados atributos) que permite definirlo e
identificarlo frente a otros objetos pertenecientes a otras clases (e
incluso entre objetos de una misma clase, al poder tener valores bien
diferenciados en sus atributos). A su vez, dispone de mecanismos de
interacción (los llamados métodos) que favorecen la comunicación entre
objetos (de una misma clase o de distintas), y en consecuencia, el
cambio de estado en los propios objetos. Esta característica lleva a
tratarlos como unidades indivisibles, en las que no se separan (ni deben
separarse) información (datos) y procesamiento (métodos).

Dada esta propiedad de conjunto de una clase de objetos, que al contar


con una serie de atributos definitorios, requiere de unos métodos para
poder tratarlos (lo que hace que ambos conceptos están íntimamente

18
PROGRAMACIÓN I

entrelazados), el programador debe pensar indistintamente en ambos


términos, ya que no debe nunca separar o dar mayor importancia a los
atributos en favor de los métodos, ni viceversa. Hacerlo puede llevar al
programador a seguir el hábito erróneo de crear clases contenedoras de
información por un lado y clases con métodos que manejen esa
información por otro (llegando a una programación estructurada
camuflada en un lenguaje de programación orientado a objetos).

Esto difiere de la programación estructurada tradicional, en la que los


datos y los procedimientos están separados y sin relación, ya que lo
único que se busca es el procesamiento de unos datos de entrada para
obtener otros de salida. La programación estructurada anima al
programador a pensar sobre todo en términos de procedimientos o
funciones, y en segundo lugar en las estructuras de datos que esos
procedimientos manejan. En la programación estructurada se escriben
funciones y después les pasan datos. Los programadores que emplean
lenguajes orientados a objetos definen objetos con datos y métodos y
después envían mensajes a los objetos diciendo que realicen esos
métodos en sí mismos.

Algunas personas también distinguen la POO sin clases, la cual es


llamada a veces programación basada en objetos.

Lenguaje de descripción de hardware (HDL).- Es el acrónimo de


Hardware Description Language (Lenguaje de Descripción de Hardware).
Son lenguajes de programación en los que el objetivo es programar un
circuito electrónico.

El flujo de diseño suele ser típico:

1. Definir la tarea o tareas que tiene que hacer el circuito.


2. Escribir el programa usando un lenguaje HDL. También existen
programas de captura de esquemas que pueden hacer esto, pero
no son útiles para diseños complicados.
3. Comprobación de la sintaxis y simulación del programa.
4. Programación del dispositivo y comprobación del funcionamiento.

Un rasgo común a estos lenguajes suele ser la independencia del


hardware y la modularidad o jerarquía, es decir, una vez hecho un
diseño éste puede ser usado dentro de otro diseño más complicado y
con otro dispositivo compatible.

Algunos de estos lenguajes son: VHDL, Verilog, ABEL, HDL.

19
PROGRAMACIÓN I

Lenguajes de Programación.

Un lenguaje de programación es un lenguaje que puede ser utilizado


para controlar el comportamiento de una máquina, particularmente una
computadora. Consiste en un conjunto de reglas sintácticas y
semánticas que definen su estructura y el significado de sus elementos,
respectivamente.

Aunque muchas veces se usa lenguaje de programación y lenguaje


informático como si fuesen sinónimos, no tiene por qué ser así, ya que
los lenguajes informáticos engloban a los lenguajes de programación y a
otros más, como, por ejemplo, el HTML.

Un lenguaje de programación permite a uno o más programadores


especificar de manera precisa: sobre qué datos una computadora debe
operar, cómo deben ser estos almacenados y transmitidos y qué
acciones debe tomar bajo una variada gama de circunstancias. Todo
esto, a través de un lenguaje que intenta estar relativamente próximo al
lenguaje humano o natural, tal como sucede con el lenguaje Lexico. Una
característica relevante de los lenguajes de programación es
precisamente que más de un programador puedan tener un conjunto
común de instrucciones que puedan ser comprendidas entre ellos para
realizar la construcción del programa de forma colaborativa.

Los procesadores usados en las computadoras son capaces de entender


y actuar según lo indican programas escritos en un lenguaje fijo llamado
lenguaje de máquina. Todo programa escrito en otro lenguaje puede ser
ejecutado de dos maneras:

 Mediante un programa que va adaptando las instrucciones


conforme son encontradas. A este proceso se lo llama interpretar
y a los programas que lo hacen se los conoce como intérpretes.
 Traduciendo este programa al programa equivalente escrito en
lenguaje de máquina. A ese proceso se lo llama compilar y al
traductor se lo conoce como compilador.

20
PROGRAMACIÓN I

Algunos lenguajes de programación:

ABAP GRAFCET PL/1


ABC FP Plankalkül
Ada Haskell PostScript
ActionScript Icon PowerBuilder
Afnix Inform Prolog
ALGOL INTERCAL Python
APL ISWIM Rapid
ASP J REXX
ASP.NET Java RPN
AWK JavaScript RPG
B Joy Ruby
BASIC KWC Sail
BCPL LADDER Sather
Befunge Letra Scheme
Boo Lexico Scriptol
C Lingo Seed7
C++ Lisp Self
C# Logo Sh
Caml Lua Simula
Clipper MAGIC Smalltalk
CLIPS Mainsail Snobol
CLU Mesa SPARK
COBOL Miranda Squeak
CORAL ML SR
D Modula Standard ML
Delphi Modula-2 TI-Basic
DIV Modula-3 TCL
Dylan Natural VBA
Eiffel NetREXX Visual Basic
Erlang Oberon Visual C++
Ensamblador Object REXX Visual
Extended ML Objective-C DialogScript
Euphoria Ocaml Visual Foxpro
Fénix Occam XBase++
Flow-Matic Oz Yurix
Forth Pascal ZPL
FORTRAN Parlog
Gambas Perl
GML PHP

21

You might also like