Introducción a la Computación

June 30, 2017 | Autor: J. Yerena Martinez | Categoría: Programacion, Computacion
Share Embed


Descripción

Programación Básica

Imparte: Francisco Gutiérrez Vera

Resumen De La Primera Unidad: Introducción a La Computación

Instituto Tecnológico de Celaya

Alumno: José Eduardo Yerena Martínez

1. Introducción a la computación

La computadora fue el elemento tecnológico más importante que afectó a la sociedad en la década de los sesenta y surge de la necesidad de encontrar formas eficientes de manipular información para representar hechos o situaciones reales. En otras palabras, el hombre no ha parado de crear máquinas, dada su continua necesidad de transmitir y tratar información. Se entendió, entonces, que el término computación se refería al conjunto de conocimientos, técnicas y formas de uso relativas a computadoras en general. Sin embargo, también se creó el término Informática, para referirse a la ciencia encargada del estudio y desarrollo de las computadoras y de los métodos para procesar la información. El término informática se creó en Francia en 1962, y procede de la contracción de las palabras: Información automática. En general, se entiende por Informática a la ciencia que estudia el tratamiento automático y racional de la información, lo cual involucra funciones como las siguientes: Desarrollo de nuevas máquinas (computadoras y periféricos), desarrollo de nuevos métodos de trabajo (sistemas operativos), construcción de aplicaciones informáticas (programas), etc.

1.1 La computadora

Una computadora es simplemente cualquier dispositivo que pueda calcular. El nombre se deriva del latín computare, que significa contar o calcular, y se aplica adecuadamente a un ábaco en la antigüedad y a una máquina sumadora en la actualidad. Sin embargo, el término “computadora” ha llegado a significar una máquina o dispositivo con características bien definidas que lo diferencian de los calculadores mecánicos, como lo son: la velocidad, la memoria interna y los programas almacenados. Veamos, por ejemplo, algunas definiciones de lo que se entiende por computadora: 

“Es una máquina compuesta de elementos físicos de tipo electrónico, capaz de realizar una gran variedad de trabajos a gran velocidad y con gran precisión siempre que se le den las instrucciones adecuadas”



“Es un dispositivo electrónico que recibe un conjunto de datos de entrada, los procesa y genera determinados resultados o información, con gran capacidad para el almacenamiento de los datos y elevada velocidad de cálculo”

1.2 Tipos de Computadoras Las computadoras se pueden clasificar en: 





Analógicas: Tienen la capacidad de medir o comparar según un patrón (fenómenos físicos continuos en el tiempo) preestablecido. Procesan datos continuos (voltajes). Es decir, manejan señales eléctricas analógicas proporcionales a medidas físicas de tipo continuo y suelen aplicarse para controlar procesos y en determinados problemas de simulación para usos médicos, científicos, meteorológicos, etc. Su programación está plasmada en los circuitos que lo integran y produce sus resultados en forma gráfica. . Digitales: Este tipo de computadora maneja señales eléctricas de tipo digital (datos representados por medio de valores discretos, como el 0, el 1, el 2, ...) y por lo tanto opera con información discreta en el tiempo. Procesa los datos siguiendo las especificaciones de un programa por medio de lenguajes y su utilización comprende cualquier tipo de trabajos. . Híbridas: Es la combinación de los dos anteriores. Suelen estar constituidas por una computadora digital que procesa información analógica, para lo cual tiene sus entradas y salidas controladas por medio de convertidores analógicos-digitales o digital-analógicos.

1.3 Definiciones Importantes





Los datos son en general cifras originales, tomados de diversas fuentes que, solos, tienen poco significado. El dato es un concepto básico o elemental, como los nombres de las cosas o las cantidades ( un precio, una fecha, el nombre de una persona, ...) La información son datos “ya trabajados” y con un orden y significado útil para la persona que los recibe. Los datos una vez procesados se convierten en información provechosa. En general se entiende por información a toda forma de representación









de hechos, objetos, valores, ideas, etcétera, que nos permite adquirir el conocimiento de las cosas y la comunicación entre personas. El hardware (ambiente duro) representa la parte física (lo tangible) de un sistema informático. Incluye elementos mecánicos, electromecánicos, electromagnéticos y eléctricos/electrónicos. Es decir, todos los elementos materiales que lo componen, como lo son la computadora, los periféricos, los cables y demás elementos que tienen entidad física. El software (ambiente blando) es la parte lógica (lo intangible) que dota al equipo físico de capacidad para realizar cualquier tipo de trabajo o tarea que se le encomiende al mismo. Está constituido por los programas y los datos que definen para el hardware los algoritmos de resolución de problemas. El personal informático es el conjunto de personas que realizan las distintas funciones relacionadas con el uso de las computadoras y la administración de la información. La palabra firmware se usa para denominar cierta parte del software (programas objeto de uso común) que traen las computadoras pregrabadas desde su fabricación y que pueden estar en memorias de tipo ROM (memorias de sólo lectura) o incorporadas en su circuitería. También se conoce como firmware a los programas en micro código almacenados en una memoria de control de alta velocidad.

2. Breve reseña de la Computación La computadora representa, de alguna manera, el genio encerrado en la botella, capaz de cumplir los deseos de rapidez y eficiencia en el cálculo y la organización de grandes masas de datos. Y ésta es precisamente la idea original: Un ingenio mecánico capaz de liberar al hombre de la pesada tarea de tener que calcular a mano. La palabra computación proviene del inglés “Computing”, que significa “Cálculo”. La historia de la computación es pues la historia del proceso en los métodos y mecanismos que el ser humano ha creado para calcular. Y con ese fin fue creada la computadora: Una máquina capaz de realizar y controlar a gran velocidad cálculos y procesos complicados que requieren una toma rápida de decisiones.

Nuestra historia comienza con el Ábaco, un mecanismo mecánico para calcular que se creó en la antigua Mesopotamia alrededor del año 500 A.C. El ábaco consistía en un cuadro de madera con barras paralelas por las cuales corrían bolas móviles. Se podía utilizar para sumar, restar y multiplicar a gran velocidad y fue muy utilizado durante cientos de años.

El siguiente avance fue en el años de 1642 cuando Blaise Pascal, de 18 años, inventó la primera calculadora mecánica. La “Pascalina” que inventó para ayudar a su padre en sus cuentas al recaudar impuestos. La calculadora funcionaba con engranes dentados que se usaban para sumar y restar números decimales y que luego mostraba los resultados a través de una ventanita.

En el año de 1671, el matemático y filósofo Alemán Gottfried Wilhelm Leibniz creó una máquina similar pero más avanzada que utilizaba un sistema de “tambores” que consistía en un cilindro con dientes que iban aumentando en longitud. La calculadora de Leibinz era capaz no solo de sumar, sino de multiplicar, dividir y trabajar con raíces cuadradas; además de que contaba con la primera “memoria” o registro.

A parte de la invención de su máquina para calcular, otra gran aportación de Leibniz fue la invención del código binario. Aunque no lo utilizó en su calculadora, creo la manera para representar cualquier número decimal usando solo ceros y unos, lenguaje que más tarde sería utilizado para las computadoras. Por su parte el inglés Goerge Boole, usó la idea de Leibinz para inventar una nueva rama de las matemáticas llama Álgebra de Boolean. Las computadoras modernas utilizan ambos, el código binario y el álgebra de Boolean para hacer decisiones simples al comparar largas líneas de ceros y unos. Hasta este punto se habían hecho muchos avances, pero el problema con las calculadoras hasta ahora utilizadas y el ábaco, es que las máquinas requerían del uso de un humano para funcionar, mientras que las computadoras actuales funcionan en base a un programa sin la necesidad de la intervención de un humano. Charles Babbage es considerado como el “Padre de las computadoras”. Fue él quien, alrededor de 1830, diseñó las primeras máquinas con las características que actualmente reconocemos en todas las computadoras: 



 

Una entrada. Sus máquinas tenían una manera de introducir números para procesarlos. Memoria. Poseían un mecanismo para almacenar esos números mientras se hacían cálculos complejos con ellos. Un Procesador. Que se encargaba de hacer las cuentas con los números. Una Salida. Un sistema de impresión que arrojaba el resultado.

La innovación de Babbage consistía en que el usuario podía, cambiando las especificaciones del control, lograr que la misma máquina ejecutara operaciones complejas, diferentes de las que había hecho antes. Curiosamente, Babbage no pudo construir ninguna de las máquinas que diseñó, pues había pensado usar miles de engranes de gran precisión que en su época no era posible construir. Su computadora era como un reloj Suizo gigante. Después de un intento fallido de construir su máquina con apoyo del gobierno británico, Babbage recibió ayuda de Augusta Ada Byron, hija del poeta Lord Byron. Ella fue una entusiasta matemática que le ayudó a Babbage con sus ideas para hacer su máquina programable, trabajo que le ganó a ella el título de la primera programadora. Lamentablemente el trabajo de Babbage estuvo perdido por mucho tiempo y para cuando sus apuntes fueron encontrados en los años 30, muchas de sus valiosas ideas ya habían sido re-inventadas por otros. Tuvieron que pasar casi cien años para que en 1945, se diseñe la primera computadora digital, que tenía un gran parecido funcional con la máquina analítica de Babbage. Un equipo, dirigido por los ingenieros John Mauchly y Johm Eckert, de la Universidad de Pennsylvania, construye una gran màquina electrónica llamada ENIAC (Electronic Numerical Integrator And Computer) que, efectivamente, es la primera computadora digital electrónica de la historia. Esta máquina era capaz de efectuar alrededor de cinco mil operaciones aritméticas en un segundo, dejando para siempre atrás las limitaciones humanas de velocidad y precisión, e inaugurando una nueva etapa en las capacidades de proceso.

El proyecto, auspiciado por el Departamento de Defensa de Estados Unidos, culminó 2 años después, cuando se integró a ese equipo el ingeniero y matemático húngaro naturalizado norteamericano, John Von Neumman. Las ideas de von Neumann resultaron tan fundamentales para el desarrollo de las computadoras modernas, que algunos lo consideran a èl como el padre de las computadoras. La computadora diseñada por este nuevo equipo se llamó EDVAC (Electronic Discrete Variable Automatic Computer). La nueva idea fundamental resulta muy sencilla: Permitir que en la memoria coexistan datos con instrucciones, para que entonces la computadora pueda ser programada de manera “suave” y no por medio de alambres que eléctricamente interconectaban varias

secciones del control, como en la ENIAC. Es más, esta idea obliga a una completa revisión de la “arquitectura” de las computadoras, que recibe desde entonces el nombre de “Modelo de von Neumann”. Alrededor de este concepto gira toda la revolución posterior de la industria y la ciencia de la computación. Desde 1947 las cosas avanzaron muy rápido para las computadoras y su desarrollo suele dividirse en tres “generaciones”. En las dos primeras, las unidades de entrada están dominadas por completo por las tarjetas perforadas, vueltas a inventar a principios del siglo por Herman Holleirth: 

En la década de los 90s Herman Hollerith construyó la primera máquina calculadora práctica. Esta se utilizó para realizar el censo de los Estados Unidos, disminuyendo el tiempo que se tardaban en hacer dichos cálculos de 7 a 2 años y medio. Hollerith se dio cuenta de que su máquina tenía otros usos así que fundó la “Tabulating Machine Company” (compañía de la máquina tabuladora) en 1896 para manufacturarla comercialmente. Poco después la compañía se cambió el nombre a “Computing-Tabulating-Recording” (C-T-R), compañía que en 1924 se convertiría en la “International Business Machines” (IBM).

En las máquinas de tercera generación se emplean métodos interactivos de comunicación, por medio de pantallas especiales de entrada/salida.

2.1 Primera Generaciòn Esta primera etapa abarcó la década de 1950. Sus máquinas están construidas con circuitos de tubos de vacío; se programan en “lenguaje de máquina” y son grandes y costosas (de decenas o cientos de miles de dólares). En 1951 aparece la primera computadora comercial, la UNIVACI (Universal Computer). Esta máquina fue utilizada para procesar los datos del censo de 1950 de Estados Unidos. Surgen en el mercado las primeras compañías que comienzan a competir en el desarrollo de las computadoras, tales como: IBM y Remington Rand.

2.2 Segunda Generación A medida que se acercaba la década de 1960, las computadoras iban constantemente evolucionando, reduciéndose en tamaño y aumentando sus capacidades de procesamiento. Al mismo tiempo se iba definiendo cada vez con mayor claridad toda una nueva ciencia: La de comunicarse con las computadoras y que recibirá el nombre de “Sistemas”. Esta generación se caracteriza por los siguientes aspectos: Están construidas con circuitos de transistores, se programan en nuevos lenguajes llamados “de alto nivel”, y son de tamaño más reducido y de costo menor que las anteriores. En la segunda generación existe mucha competencia, surgen muchas compañías nuevas y se cuenta con máquinas bastante avanzadas para su época, como la serie 5000 de Burroughs y la máquina ATLAS, de la Universidad de Manchester.

2.3 Tercera Generación Esta generación surge a mediados de la década de 1960. Se puede decir que se inaugura con la presentación en 1964 de la serie 360 de IBM. Las características básicas de la tercera generación consisten en que su fabricación electrónica está basada en los “circuitos integrados” (agrupamiento de circuitos de transistores “grabados” en pequeñísimas placas de silicio); y en que su manejo es por medio de los lenguajes de control de los sistemas operativos.

2.4 Mini Computadoras A mediados de la década de 1970 surge un gran merado para computadoras de tamaño mediano, o minicomputadoras, que no son tan costosas como las grandes máquinas, pero que ya disponen de una gran capacidad de proceso. En un principio el mercado de estas nuevas máquinas estuvo dominado por la serie PDP-8 de DEC (Digital Equipment Corporation), actualmente en desuso.

2.5 Micro Computadoras y Computadoras Personales El avance de la microelectrónica prosigue a una velocidad impresionante y ya para los años 1972-1973 surge en el mercado una nueva familia de circuitos integrados de alta densidad, que reciben el nombre de “microprocesadores”. Las “microcomputadoras” que se diseñan con base en estos circuitos son extremadamente pequeñas y baratas, por lo que su uso se extiende al mercado de consumo industrial. Los microprocesadores más usuales actualmente fueron diseñados por tres compañías: el Z-80 de Zilog, el 6809 de Motorola y el 8088 de Intel. Estas microcomputadoras de uso personal se volvieron lo suficientemente baratas y accesibles para ser empleadas por organizaciones pequeñas y negocios. Más adelante comenzó a extenderse el uso de aplicaciones “creativas” en computación y como pasatiempo. El desarrollo de las computadoras continuó avanzando día a día hasta que las computadoras se volvieron de fácil acceso y uso para toda clase de público. Pasaron de ser una enorme maquinaria que ocupaba un sótano entero de una universidad a ocupar un lugar en el escritorio de cientos de miles de hogares. Aún hoy en día la computación sigue desarrollándose a un gran ritmo y las computadoras se han vuelto parte de la vida cotidiana de casi toda la población en la mayoría de los países.

3. Impacto de las computadoras en la sociedad

Desde la segunda revolución industrial, las computadoras han ocupado un lugar cada vez más importante dentro de nuestra sociedad. La computadora es la máquina más versátil que los humanos han creado y juega un papel muy importante en nuestra vida cotidiana. Tiene una gran área de aplicación y sin las computadoras nuestra vida sería más difícil y muy diferente. Dentro de la amplia gama de aplicaciones que tiene la computadora en la sociedad encontramos los siguientes campos: Desarrollo Científico: Los científicos usan computadoras para desarrollar teorías, colectar y analizar datos e intercambiarlos alrededor del mundo. Poderosas computadoras pueden ser usadas para generar estudios detallados de fenómenos como terremotos o la contaminación en una ciudad. Se utilizan computadoras para la investigación espacial. Grandes avances en la medicina se logran gracias a diferentes investigaciones sobre enfermedades y medicinas que se realizan por computadora. Educación: En nuestros días muchas escuelas, colegios y universidades dan un énfasis especial a la educación computacional de sus alumnos. Además de dar educación sobre el tema a sus alumnos las escuelas también usan las computadoras para hacer de la educación un proceso más interesante; a diferencia de otros intentos de usar medios como la televisión para enseñar, las computadoras han demostrado ser un medio mucho más interactivo. Computadoras también son utilizadas para tener acceso a bibliotecas y virtuales.

Comunicación: El correo electrónico y las redes sociales son una facilidad proporcionada por las computadoras que permite enviar mensajes de un lugar a otro con gran facilidad. Este medio de comunicación es utilizado hoy por casi cualquier organización existente, además de ser utilizado de manera personal por una enorme cantidad de gente. Ingeniería y Manufactura:

Arquitectos e Ingenieros están usando extensivamente comoputadoras para diseñar y dibujar. Las computadoras pueden crear objetos que pueden verse desde todas las 3 dimensiones. Al usar técnicas de computadora como las de realidad virtual, arquitectos pueden explorar casas que han sido diseñadas pero no construidas. Y lo mismo se puede hacer para estudiar los diseños de aviones, barcos, automóviles y muchos otros objetos. Las computadoras también permiten que algunas tareas peligrosas dentro de una empresa sean realizadas por un robot. Además, la manufactura asistida por computadora puede usarse para mejorar el diseño, la planeación y los tiempos de producción de un producto. Finanzas: Las personas pueden acceder a un cajero atomático las 24 horas del día gracias a las computadoras. Los bancos también usan computadoras para crear un sistema de red permitiendo que se realicen transacciones en cualquiera de las ramas de un banco sin retrasos.

Negocios e Industrias: Muchas de las pequeñas empresas pequeñas que han tenido éxito simplemente no existirían sin la tecnología de las computadoras. Cada año cientos de personas comienzan un negocio desde sus hogares o pequeñas oficinas. Las computadoras permiten a los dueños de esos negocios realizar tareas de contabilidad, inventario, administración, mercadotecnia, roles de pago y muchos otras similares sin la necesidad de contratar a un gran personal para ello. Los negocios también utilizan la red para compartir datos importantes por correo electrónico u otros medios similares. Las computadoras también ayuda a los negocios a diseñar productos, planear y manejar servicios de envío y controlar procesos industriales. Como resultado las pequeñas industrias y negocios se vuelven más autosuficientes y competitivos.

3.1 Impacto General: Ventajas y Desventajas

El uso de las computadoras ha traído consigo muchas ventajas y beneficios, pero así mismo ha traído algunas consecuencias negativas que también impactan nuestra vida social y laboral. Algunas de esas ventajas y desventajas son:

Ventajas  

  

Muchos individuos profesionales experimentan un cambio significativo y positivo al incluir la computadora en su patrón de trabajo. Los individuos se vuelven más competentes para tomar decisiones al tener acceso, por medio de las computadoras, a la información que necesitan para tomar dicha decisiones. Personas que trabajan en niveles administrativos se vuelven menos dependientes de un gran personal de apoyo. Gracias a las computadoras, servicios como los que se dan en los aeropuertos, hospitales, bancos y tiendas que han sido computarizadas se realizan mucho rápido. Las computadoras han creado nuevos campos de empleo.

Desventajas   



Si por alguna razón la memoria almacenada de una computadora se pierde, el dueño de dicha información pasará varios problemas. Las personas no utilizan su mente para operaciones de aritmética, lo que gradualmente resultará en la pérdida de habilidad numérica. Hoy en día alguien que no tiene conocimiento sobre computadoras es considerado como un ciudadano de segunda clase.  Muchas personas temen que los niños de nuevas generaciones perderán el uso del sentido común y habilidades numéricas debido a la dependencia a las computadoras.  Debido a que la computarización facilita muchos procesos que anteriormente requerían de empleados humanos muchas organizaciones se ven en la necesidad de despedir a sus empleados. Por esta razón hay mucha falta de seguridad o inconformidad por parte del personal empleado. Con la introducción de una nueva tecnología a una organización, ésta podría verse en la necesidad de gastar una gran cantidad de recursos en enseñar a su personal cómo utilizar las nuevas tecnologías.

3.2 ¿Por qué las computadoras afectan tanto la sociedad?

El alcance de las computadoras en nuestra sociedad es muy grande, y por ello es muy importante mencionar no solo cómo nos impactan las computadoras sino el porqué. En una investigación al respecto, Blaise W. Liffick del Departamento de ciencias computacionales de la Universidad de Millersville, llegó a las siguientes conclusiones: No es difícil que los profesionales lleguen a estar de acuerdo en que las computadoras tienen un gran impacto en la sociedad. Lo que es más difícil es encontrar el porqué. Esta discusión incluye muchas características de las computadoras que pueden ser el centro de los efectos. A continuación se presenta una lista de características de las computadoras que se pretende se vuelvan un foco alrededor del cual se pueda desenvolver el diseño de nuevas tecnologías con el fin de anticipar las consecuencias sociales de un producto nuevo y mitigar cualquier potencial efecto negativo.  Ubicación: Las computadoras parecen estar en todas partes hoy en día. Aun cuando no nos las encontremos directamente por medio de relojes, hornos microondas, celulares, etc., nosotros generamos transacciones que son procesadas vía computadora aún sin hacer activamente nada: Las utilidades de alguna compañía a la que pertenezcamos, las compañías telefónicas procesando nuestros registros, nuestras máquinas contestadoras generando mensajes. Alguien puede generar una interacción con una computadora que nos involucre a nosotros aún sin que lo sepamos.  Magnificación: Las computadoras han producido una explosión en la disponibilidad de información debido a su capacidad de generar, recolectar y guardar una cantidad cada vez más grande de datos. Por otro lado, un error generado en sistema puede magnificar también el resultado y afectar a millones de personas.

 Accesibilidad: El acceso a la información incrementa a grandes velocidades. Además de que existe una gran cantidad de información disponible, se puede acceder a ella desde casi cualquier lugar en que nos encontremos por medio de diferentes dispositivos.  Capacidad de Reproducción y Distribución: Muchos recursos que se encuentran disponibles en medio digital como libros, revistas, canciones, películas, etc. Pueden ser fácilmente duplicados y distribuidos casi sin límite. Se puede generar una copia

de una canción por ejemplo, que se escucha exactamente igual que la original. Esto desde luego ha creado graves problemas para las industrias de grabación, compositores, cantantes e intérpretes.  Falta de Responsabilidad personal: Se ha vuelto cada vez más difícil localizar a un ser humano dispuesto a aceptar la responsabilidad de un error hecho por un sistema computarizado. Aunque puede ser tentador culpar de ciertos problemas a un empleado incompetente, la verdad es que a veces los problemas pueden surgir por un mal uso de alguna interface, falta de entrenamiento o un error en el software, ninguno de los cuáles puede ser solucionado por aquellos que proveen el servicio de primera línea. Otra dificulta es encontrar a alguien dispuesto a arreglar un problema, a veces incluso no es posible encontrar a un ser humano capaz de resolver ciertos problemas con programas computacionales.

 Temporalidad: Hoy en día la sociedad requiere todas las cosas lo más rápido posible, y nada más rápido que una computadora para ciertos problemas. También las computadoras permiten guardar información por periodos indefinidos de tiempo. Hay pocas razones para que alguna información guardada virtualmente se pierda de verdad para siempre, aún por accidente. Además las computadoras no tienen horario de descanso, están disponibles las 24 horas del día.  Espacialidad: Las computadoras han acortado la distancia más que cualquier otra tecnología previa. Es posible enviar una gran cantidad de información prácticamente a cualquier parte del mundo vía Internet.

 Vigilancia: Las computadoras han hecho que la vigilancia sea mucho más fácil que en cualquier otra época de la historia. Además del uso normal de cámaras y micrófonos, la información sobre toda clase de transacción virtual se puede recolectar para ser analizada posteriormente con fines de seguridad.  Cambios en los protocolos de intercomunicación: El uso de los correos electrónicos y otros medios han demostrado eliminar gran parte de las señas visuales y verbales que normalmente usamos para comunicarnos unos con otros. Además de remover dichas señas, los medios de comunicación por computadora enmascaran atributos como raza, género, edad o discapacidad física, en adición, tal vez, a la relación social de un individuo dentro de una organización,

 Ilusión de precisión: No es difícil hacer que muchas personas (casi cualquiera) que no estén familiarizadas con el campo de la computación crea que cualquier resultado numérico generado por una computadora es correcto. Simplemente no comprenden que las computadoras se pueden equivocar.

3.3 Conclusión Desde su inicio las computadoras han ido evolucionando hasta formar una parte muy importante de nuestra sociedad. La vida es mucho más fácil gracias a ellas, difícilmente pasamos un solo día sin utilizar una computadora. Su impacto puede ser muy positivo o también puede llegar a ser negativo dependiendo del uso que nosotros les demos. Y la profundidad que tengan en nuestra sociedad dependerá de la posición en la que nosotros coloquemos su uso. Las computadoras nos afectarán tanto como la sociedad lo permita.

4. Definiciones

Lenguaje Máquina Los lenguajes máquina son aquellos que están escritos en lenguajes directamente inteligibles por la máquina; en ellos las instrucciones son cadenas binarias (cadenas o series de caracteres –dígitos- 0 y 1) que especifican una operación y las posiciones (dirección) de memoria implicadas en la operación y se denominan instrucciones de máquina o código máquina. El código máquina es el conocido código binario compuesto esencialmente de dígitos 0 y 1. Sus ventajas recaen en la posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traducción posterior, lo que supone una velocidad de ejecución superior a cualquier otro lenguaje de programación. Los inconvenientes son:    

Dificultad y lentitud en la codificación. Poca fiabilidad. Dificultad grande de verificar y poner a punto los programas. Los programas sólo son ejecutables en el mismo procesador.

Para evitar los lenguajes máquina se han creado otros lenguajes que permiten escribir programas con instrucciones similares al lenguaje humano, estos lenguajes son los de alto y bajo nivel.

Lenguajes de Bajo Nivel Los lenguajes de bajo nivel son más fáciles de utilizar que los lenguajes máquina, pero, al igual que ellos, dependen de la máquina en particular. El lenguaje de bajo niel por excelencia es el ensamblador. Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotécnicos. Por ejemplo nemotécnicos típicos de operaciones aritméticas son: ADD, SUB, DIV, etc. Una instrucción típica sería: ADD

M, N, P

Mientras que la misma instrucción en código binario se vería algo así: 0110

1001

1010

1011

Un programa escrito en lenguaje ensamblador no puede ser ejecutado directamente por la computadora, sino que requiere una fase de traducción al lenguaje máquina. El programa original escrito en lenguaje ensamblador se denomina programa fuente y el programa traducido en lenguaje máquina se conoce domo programa objeto, ya directamente entendible por la computadora. El traductor de programas fuente a objeto es un programa llamado ensamblador. La ventaja de los lenguajes ensambladores es su mayor facilidad de codificación y en general, su velocidad de cálculo. Sus desventajas son:  

Dependencia total de la máquina, lo que impide la transportabilidad de los programas. La formación de los programadores es más compleja que la correspondiente a los programadores de alto nivel.

Lenguajes de Alto Nivel Los lenguajes de alto nivel son los más utilizados por los programadores. Están diseñados para que las personas escriban y entiendan los programas de un modo mucho más fácil que los lenguajes máquina y ensambladores. Otra razón es que un programa escrito es independiente de la máquina, no dependen del diseño del hardware o de una computadora en particular. Son portables, pueden ser ejecutados con poca o ninguna modificación en diferentes tipos de computadoras. Sus ventajas son:     

El tiempo de formación de los programadores es relativamente corto. La escritura de programas se basa en reglas sintácticas similares a los lenguajes humanos: nombres de las instrucciones tales como READ, WRITE, PRINT. Las modificaciones y puestas a punto de los programas son más fáciles. Reducción de coste de los programas. Transportablidad.

Sus desventajas son:

   

Incremento en el tiempo de puesta a punto al necesitarse diferentes traducciones del programa fuente para conseguir el programa definitivo. No se aprovechan los recursos internos de la máquina, que se explotan mucho mejor en lenguajes máquina y ensambladores. Aumento de la ocupación de memoria. El tiempo de ejecución de los programas es mucho mayor.

Traductores de Lenguajes Los traductores de lenguajes son programas que traducen a su vez los programas fuente escritos en lenguajes de alto nivel a código máquina. Se dividen en dos: Compiladores e Intérpretes.

Intérpretes Un intérprete es un traductor que toma un programa fuente, lo traduce y a continuación lo ejecuta.

Compiladores Un compilador es un programa que traduce los programas fuente escritos en lenguajes de alto nivel a lenguaje máquina.

Arquitectura de Computadoras La arquitectura en el entorno informático proporciona una descripción de la construcción y distribución física de los componentes de la computadora. Explica la situación de sus componentes y permite determinar las posibilidades de que un sistema informático, con una determinada configuración, pueda realizar las operaciones para las que se va a utilizar. La arquitectura básica de cualquier ordenador completo está formado por solo 5 componentes básicos: procesador, memoria RAM, disco duro, dispositivos de entrada/salida y software.

Sistema Numérico Un sistema numérico son un conjunto de símbolos y reglas que se utilizan para representar datos numéricos o cantidades. Se caracterizan por su base que indican el número de símbolos distinto que utiliza y además es el coeficiente que determina cual es el valor de cada símbolo dependiendo de la posición que ocupe.

Sistemas Operativos Es el conjunto de programas que administran todos los recursos de la computadora: operaciones en la memoria central, almacenamiento y recuperación de programas y datos de discos y cintas en forma de archivos, operaciones de entrada y salida, comunicación con periféricos, etc.

5. Descripción de Tipos de Programación

Es importante analizar que hay una diferencia en lo que comúnmente creemos que es la programación y lo que ésta realmente significa, pues en el lenguaje cotidiano podemos confundir la programación con la codificación. Por programar se entiende un proceso mental complejo, dividido en varias etapas. La finalidad de la programación, así entendida, es comprender con claridad el problema que va a resolverse o simularse por medio de la computadora, y entender también con detalle cuál será el procedimiento mediante el cual la máquina llegará a la solución deseada. Por otro lado la codificación constituye una etapa necesariamente posterior a la programación, y consiste en describir, en el lenguaje de programación adecuado, la solución ya encontrada, o sugerida, por medio de la programación. Es decir, primero se programa la solución de un problema y después hay que traducirla a la computadora. Las fases de construcción de un programa son, en orden, las siguientes: 0._ Entender el problema. 1._ Hacer el análisis del mismo (análisis del sistema) 2._Programar el modelo de solución propuesto. 3._Codificarlo 4._Cargarlo a la computadora para su ejecución y ajuste. 5._ Darle mantenimiento durante su tiempo de vida.

Al estudio de los lenguajes en cuanto al enfoque del proceso de programación se le denomina paradigmas de la programación, entendiéndose el término paradigma como la forma de ver y hacerlos programas. Dependiendo del problema que se desee resolver y la forma en que se quiere abordar, se puede utilizar algún paradigma o tipo de programación diferente.

5.1 Programación Estructurada Es aquella disciplina que considera el hecho de escribir programas para computadora como un intento serio de aplicar ciertos metodológicos básicos para resolver un problema concreto. El problema concreto es, por supuesto, escribir un programa que haga lo que se desea resolver con la computadora. Los principios metodológicos básicos son los de subdividir el problema dado en partes asequibles para su análisis, y hacer esto de forma tal que ese agilice el proceso de entender por completo tanto el problema como su solución. Tratándose de programación, estos módulos o subdivisiones deseadas han de cumplir lo siguientes requisitos: 1. Deberán ser jerarquizados. 2. Deberán ser pequeños y sencillos. 3. Deberán “esconder” los detalles poco importantes a módulos superiores en la jerarquía. 4. Deberán, a su vez, usar tantos módulos de más baja jerarquía como sea necesario para cumplir con el punto 1 5. Deberán usar las estructuras de datos y control adecuadas para cumplir con el punto 1 6. Deberán ser legibles; esto es, que no sólo su autor sea capaz de entenderlos, sino cualquiera que tenga acceso a ellos y aun conocimiento elemental de programación. El proceso que se emplea para pasar de la descripción de un problema a la generación de un programa estructurado para resolverlo consta de los siguientes pasos: 1) Se propone una solución global al problema en términos de una descripción en un lenguaje llamado pseudocódigo. Esto será el primer acercamiento a la solución. Este pseudocódigo describirá, de manera aproximada, el procedimiento para resolver el problema. 2) Se toma el módulo recién generado y se comienza a refinar progresivamente, tratando de traducir cada una de sus “pseudoinstrucciones” a órdenes inteligibles para la computadora y verificando, a la par, que esté correcto. 3) Se ejecuta el paso anterior sobre cada uno de los módulos obtenidos, hasta que no quede nada escrito en pseudocódigo y todo haya sido traducido a lenguaje de computadora. 4) Fin.

5.2 Programación Orientada a Objetos

La programación orientada a objetos es considerado un nuevo paradigma de la computación, una nueva forma de ver el mundo y las cosas que nos rodean. Se trata de una técnica que aumenta considerablemente la velocidad de desarrollo de los programas gracias a la reutilización de los objetos. El elemento principal de la programación orientada a objetos es el objeto. El objeto es un conjunto complejo de datos y programas que poseen estructura y forman parte de una organización. Un objeto contiene varios datos bien estructurados y pueden ser visibles o no dependiendo del programador y las acciones del programa en ese momento. Hay algunos elementos que son muy importantes dentro de la programación orientada a objetos: Mensajes y Métodos: Una acción es iniciada en un programa orientado a objetos por la transmisión de un mensaje a un agente (objeto) responsable de la acción. Este mensaje contiene la petición de alguna acción y es acompañado por alguna información adicional necesaria para realizar la petición. El que receptor es el agente a quien el mensaje es enviado. Si el receptor acepta el mensaje, acepta la responsabilidad de llevar a cabo la acción indicada. En respuesta al mensaje, el receptor ejecutará algún método para satisfacer la petición. Clases e Instancias: Todos los objetos son instancias de una clase. El método utilizado por n objeto en respuesta a un mensaje està determinado por la clase del receptor. Todos los objetos tienen una clase de una clase dada usan el mismo método en respuesta a mensajes similares. Herencia: Las clases pueden ser organizadas dentro de una estructura de herencias. Una subclase heredará atributos desde una superclase mayor en el árbol. Unión de Métodos: Para buscar un método que utilizar como respuesta de un mensaje, se comienza en la clase del receptor. Si no se encuentra un método apropiado, la búsqueda se conduce a la superclase de su clase. La búsqueda continua por la cadena de superclases hasta que o el método se encuentra o la cadena de superclases se termine.

5.3 Sistemas Numéricos

Un sistema numérico es un conjunto de números que se relacionan para expresar la relación existente entre la cantidad y la unidad. Debido a que un número es un símbolo, podemos encontrar diferentes representaciones para expresar una cantidad. Podemos decir que la programación de sistemas numéricos es la manera en que éstos se utilizan para resolver el problema de representar cierto número en determinado sistema.

Sistema Decimal En el sistema de numeración decimal se utilizan diez símbolos, del 0 al 9 para presentar una determinada cantidad. Los diez símbolos no se limitan a expresar solamente diez cantidades diferentes, ya que se utilizan varios dígitos en las posiciones adecuadas dentro de un número para indicar la magnitud de la cantidad. Base: 10 Símbolos: 0,1,2,3,4,5,6,7,8,9 La posición de cada dígito en un numero decimal indica la magnitud de la cantidad representada y se la puede asignar un peso. Los pesos para los números enteros son potencias de 10, que aumentan de derecha a izquierda, comenzando por 100 = 1.

Sistema Binario EL sistema de numeración binario utiliza solo dos dígitos, el cero y el uno. En una cifra binaria, cada dígito tiene distinto valor dependiendo de la posición que ocupe. El valor de cada posición es el de una potencia de base 2, elevada a un exponente igual a la posición del dígito menos uno. Base: 2 Símbolos 0,1 El numero binario 1011 tiene un valor que se calcula así:

1*23 + 0*22 + 1*21 + 1*20 , es decir:

8 + 0 + 2 + 1 = 11

Sistema Octal El inconveniente de la codificación binaria es que la representación de algunos números resulta muy larga, por este motivo se utilizan otros sistemas de numeración que resulten más cómodos de escribir: el sistema octal y el sistema hexadecimal. Afortunadamente resulta muy fácil convertir un numero binario a octal o a hexadecimal. Base: 8 Símbolos: 0,1,2,3,4,5,6,7 Ejemplo, el número octal 2738

2*83 + 7*82 + 3*81 = 2*512 + 7*64 + 3*8 = 149610

2738 = 149610

Sistema Hexadecimal En el sistema hexadecimal los números se representan con dieciséis símbolos: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,y F. Se utilizan los caracteres A,B,C,D,E y F representando las cantidades decimales 10,11,12,13,14 y 15 respectivamente, porque no hay dígitos mayores que 9 en el sistema decimal. El valor de cada uno de estos símbolos depende, como es lógico, su posición, que se calcula mediante potencias de base 16 Ejemplo calcular el número hexadecimal 1A3F16 1A3F16 = 1*163 + A*162 + 3*161 + F*160 1*4096 + 10*256 + 3*16 + 15*1 = 6719 1A3F16 = 67191

5.4 Otros Tipos de Programación

Programación modular

En la programación modular consta de varias secciones dividas de forma que interactúan a través de llamadas a procedimientos, que integran el programa en su totalidad. En la programación modular, el programa principal coordina las llamadas a los módulos secundarios y pasa los datos necesarios en forma de parámetros. A su vez cada módulo puede contener sus propios datos y llamar a otros módulos o funciones.

Programación concurrente

Este tipo de programación se utiliza cuando tenemos que realizar varias acciones a la vez. Se suele utilizar para controlar los accesos de usuarios y programas a un recurso de forma simultánea. Se trata de una programación más lenta y laboriosa, obteniendo unos resultados lentos en las acciones.

Programación funcional Se caracteriza principalmente por permitir declarar y llamar a funciones dentro de otras funciones.

Programación lógica Se suele utilizar en la inteligencia artificial y pequeños programas infantiles. Se trata de una programación basada en el cálculo de predicados (una teoría matemática que permite lograr que un ordenador basándose en hecho y reglas lógicas, pueda dar soluciones inteligentes).

6. Los Lenguajes de Programación Para que un procesador realice un proceso se le debe suministrar en primer lugar un algoritmo adecuado. El procesador debe ser capaz de interpretar el algoritmo, lo que significa:  

Comprender las instrucciones de cada paso. Realizar las operaciones correspondientes.

Cuando el procesador es una computadora, el algoritmo se ha de expresar en un formato que se denomina programa. Un programa se escribe en un lenguaje de programación, y las operaciones que conducen a expresar un algoritmo en forma de programa se llaman programación. Así pues, los lenguajes utilizados para escribir programas de computadoras son los lenguajes de programación, y programadores son los escritores y diseñadores de programas.

Instrucciones a la Computadora Los diferentes pasos (acciones) de un algoritmo se expresan en los programas como instrucciones, sentencias o proposiciones (normalmente el término instrucción se suele referir a los lenguajes máquina y bajo nivel, reservando la sentencia o proposición para los lenguajes de alto nivel). Por consiguiente, un programa consta de una secuencia de instrucciones, cada una de las cuáles especifica ciertas operaciones que debe ejecutar la computadora. La elaboración de un programa requerirá conocer el juego o repertorio de instrucciones del lenguaje. Las instrucciones básicas y comunes a casi todos los lenguajes de programación se pueden condensar en 4 grupos: 

Instrucciones de entrada/salida: Instrucciones de transferencia de información y datos entre dispositivos periféricos (teclado, impresora, unidad de disco, etc.) y la memoria central.



Instrucciones aritmético-lógicas: Instrucciones que ejecutan operaciones aritméticas (suma, resta, multiplicación, división, potenciación), lógicas (operaciones and, or, not, etc.).



Instrucciones selectivas:

Instrucciones que permiten la selección de tareas alternativas en función de los resultados de diferentes expresiones condicionales. 

Instrucciones repetitivas: Instrucciones que permiten la repetición de secuencias de instrucciones un número determinado o indeterminado de veces.



Instrucciones especiales: Instrucciones relativas a gráficos, comunicaciones, etc.

Referencias

Capítulo 1 Introducción a las Computadoras: Dolores Cuiñas H. (2007). “BREVE INTRODUCCIÓN ALA COMPUTACIÓN”. 8 de Septiembre del 2015, de Universidad de los Andes Venezuela Sitio web: http://www.ceidis.ula.ve/cursos/ingenieria/pd_10/clases/Apunt_0.pdf

Capítulo 2 Breve Reseña de la Computación: GUILLERMO LEVINE GUTIÉRREZ 1984, “Introducción a la Computación y a la Programación Estructurada” , Editorial McGraw-Hill, impreso en 1990.

Capítulo 3 Impacto de las Computadoras en la Sociedad Bhim Chimoriya. (2014). “Positive and Negative Impact of Computer in Society”. 5 de septiembre del 2015, de WISE/BLOG Sitio web: http://www.wisenepali.com/2014/11/positive-and-negative-impact-of.html Blaise W. Liffick. (1995). “Social Impact Characteristics of Computer Technology”. 5 de Septiembre del 2015, de ETHICOMP95 Conference Sitio web: http://cs.millersville.edu/~bliffick/compchar.html

Capítulo 4 Definiciones YESENIA CETINA. (2012).” Modelos de Arquitecturas”. 5 de septiembre del 2015, de Slideshare Sitio web: http://es.slideshare.net/yesyduc10/modelos-de-arquitecturas-decomputadoras William Judson LeVeque. (2015). “Numerals and numeral systems”. 5 de Septiembre del 2015, de ENCYCLOPEDIA BRITANNICA Sitio web: http://global.britannica.com/topic/numeral Luis Joyanes Aguilar (1995), “Turbo Basic Manual de Programación”. México: McGrawHill

Capítulo 5 Descripción de Tipos de Programación Timothy Budd. (1991). "Object-Oriented Programming". Estados Unidos: AddisonWesley.

Sara Álvarez. (2006). “Tipos de programación”. 7 de Septiembre del 2015, de desarrolloweb.com Sitio web: http://www.desarrolloweb.com/articulos/2477.php

Edgar Ruíz L.. (2001). “LENGUAJES DE PROGRAMACIÓN: CONCEPTOS Y PARADIGMAS”. 7 de Septiembre del 2015, de SISBIB Sitio web: http://sisbib.unmsm.edu.pe/bibvirtual/publicaciones/indata/v04_n1/lenguajes.htm Alejandra Rojas. ( 2012). “Lógica de Programación”. 7 de septiembre del 2015, de blogger.com Sitio web: http://logicadeprogramacionusta.blogspot.mx/

Guillermo Levine. (1989). "INTRODUCCIÓN A LA COMPUTACIÓN Y A LA PROGRAMACIÓN ESTRUCTURADA". MÉXICO: McGRAW-HILL

Capítulo 6 Los Lenguajes de Programación Luis Joyanes Aguilar (1995), “Turbo Basic Manual de Programación”. México: McGrawHill

Lihat lebih banyak...

Comentarios

Copyright © 2017 DATOSPDF Inc.