33
Prof. MSc Jaime Soto Universidad Rafael Urdaneta Escuela de Ingeniería de Computación

Universidad Rafael Urdaneta Escuela de Ingeniería de ...³n: Disciplina integrante de las ciencias exactas, especializada en el cálculo y aplicada al uso de las computadoras. Computadora:

Embed Size (px)

Citation preview

Prof. MSc Jaime Soto

Universidad Rafael Urdaneta

Escuela de Ingeniería de Computación

Dato: Los datos son representaciones abstractas de hechos (eventos,

ocurrencias, transacciones) u objetos (entidades, personas, etc.). Un conjunto

de datos procesados adquieren significado y proporcionan conocimientos

sobre los hechos u objetos que los originan, transformándose en lo que se

conoce como información.

Información: Es un conjunto de datos analizados y organizados para un fin

específico. La información son palabras, números, dibujos, etc. Símbolos que

nos proporcionan conocimiento sobre alguna realidad.

Informática: La ciencia de la informática se ocupa del análisis de la

información, vista como un recurso de la organización.

Computación: Disciplina integrante de las ciencias exactas, especializada en el cálculo y

aplicada al uso de las computadoras.

Computadora: (o computador) es un sistema electrónico manipulador de símbolos

diseñado y organizado para aceptar y almacenar automáticamente datos de entrada,

procesarlos y producir resultados de salida bajo la dirección de un programa de

instrucciones almacenados, en su memoria, que detalla todos los pasos que se han de

seguir.

Hardware: Se denomina Hardware a todos aquellos componentes electrónicos,

magnéticos y mecánicos que forman parte integrante de un equipo de computación;

como característica resaltante tenemos que el hardware es tangible, medible, pesable,

movible y ocupa un volumen determinado.

Como ejemplo tenemos: El monitor o pantalla, la impresora, los pendrives, CDROM,

DVD-ROM, teclado, CPU (Unidad Central de Procesamiento), etc.

Sistema: Es una agrupación de métodos y procesamientos integrados para formarun ente organizado.

Para los usuarios de computadoras, un sistema se define como una agrupaciónorganizada de personas, métodos, máquinas y materiales reunidos para lograr unconjunto de objetivos específicos.

Componentes de un Sistema de Computo

Componentes de un Sistema de Computo

Dispositivos de Entrada: Son máquinas diseñadas para la captura de datos.

Algunos dispositivos de entrada permiten la comunicación directa entre los

humanos y las máquinas, mientras que otros requieren la grabación de los

datos en un medio de entrada, como por ejemplo en algún medio

magnetizable.

Ejemplos: Pendrive, discos ópticos, CD-ROM, teclado, ratón (mouse), lápiz de entrada,

pantalla sensible al tacto, micrófono, lectora de caracteres ópticos, lectora de

caracteres de tinta magnética, documentos con banda magnética, teléfono de

transacciones, estaciones de trabajo o terminales inteligentes, entre otros.

Unidad de Procesamiento: El corazón de todo sistema de

cómputo es la Unidad de Procesamiento, que contiene los

elementos de memoria principal, aritmética-lógica y control, y

se encuentran presentes en procesadores de cualquier tamaño.

Sección de Memoria Principal: La sección de Memoria Principal o almacenamiento

primario, se utiliza para cuatro funciones, las cuales son:

Los datos se introducen en un área de almacenamiento de entrada y permanecen en eselugar hasta el momento que se vayan a procesar. Un espacio de memoria de trabajo escomo una hoja de papel para hacer cuentas y contendrá los datos que se estánprocesando, así como los resultados intermedios de dicho procesamiento.

Un área de almacenamiento de salida guarda los resultados finales del procesamientohasta que pueden ser liberados. Un área de almacenamiento de programas guarda lasinstrucciones de procesamiento.

Memoria RAM: Es la Memoria de Acceso Aleatorio o memoria de Lectura /

Escritura (por sus siglas en inglés: Random Access Memory), se puede leer o

escribir información indistintamente, pudiendo el usuario modificar o

sustituir información en cualquier momento. Todas las operaciones

relacionadas con la memoria están controladas por la CPU. La memoria RAM

se caracteriza por ser volátil, es decir, la falta de alimentación eléctrica hace

desaparecer toda la información que estuviera almacenada en ella. Esto no

debe ser un grave problema siempre y cuando el usuario tenga almacenados

sus programas en una memoria de tipo auxiliar no volátil (disco duro,

pendrive, R-CD y R-DVD, entre otros). Así, el riesgo ante una falla de energía

eléctrica se reduce a la pérdida de las modificaciones efectuadas durante la

sesión en curso, razón por la cual se recomienda salvar (regrabar) la

información en forma continua.

Memoria ROM: La Memoria de Sólo Lectura (por sus siglas en inglés: Read Only

Memory), permite únicamente la operación de lectura, de forma que los

programas grabados en ella por el fabricante (Sistema Operativo, Lenguajes de

Alto Nivel, Programas de Utilidad, etc.) pueden ser utilizados, pero nunca

modificados ya que permanecen inalterables durante el funcionamiento normal

de la memoria. Las memorias de este tipo no son volátiles, ya que su contenido es

fijo y no pueden reprogramarse.

Sección Aritmética-Lógica : Esta sección, junto con la sección de cControl y la

memoria de registros internos, constituye la Unidad Central de Procesamiento

(CPU, Central Processing Unit). Esta ejecuta sumas, restas y otras operaciones

sobre el contenido de sus registros de entrada, colocando el resultado en el de

salida, el cual a su vez puede ser almacenado en uno de los registros y de ahí, si se

desea a la memoria.

Sección de Control: Al seleccionar, interpretar y ordenar la ejecución de las

instrucciones del programa, la sección de control de la CPU mantiene el

orden y dirige la operación de todo el sistema.

Dispositivos de Almacenamiento Secundario: Se emplean para

complementar la limitada capacidad de almacenamiento de la sección de

Memoria Principal. Están en línea con el computador, es decir, están

conectados directamente a el computador.

Ejemplos: discos ópticos, CD-ROM, DVD-ROM, PenDrive, entre otros.

Dispositivos de Salida: Son instrumentos que interpretan información y

permiten la comunicación entre los seres humanos y las computadoras.

Estos dispositivos convierten los resultados que produce el procesador y

que están en el código máquina en una forma susceptible de ser empleada

por las personas o como entrada para otras máquinas que formen parte de

un ciclo de procesamiento distinto.

Ejemplos: Pendrive, impresora (impacto, matriz de puntos, laser, inyección

de tinta, térmicas, etc.), monitor, graficadores, microfichas, microfilms,

unidades de respuesta audibles, CD-ROM, DVD-ROM, entre otros.

DIFERENCIAS ENTRE LAS COMPUTADORAS

1.- Diferencias de propósito.

2.- Diferencias según el área de Aplicación.

Según el fin, las computadoras se clasifican en:

Computadora Digital: dispositivo que manipula datos discretos y realiza

operaciones aritméticas y lógicas sobre datos.

Computadora Analógica: dispositivo que opera datos que tienen la forma de

cantidades físicas de variación uniforme.

Computadora Híbrida: dispositivo de proceso de datos que emplea

representación tanto analógica como discreta de los datos.

DIFERENCIAS ENTRE LAS COMPUTADORAS

2.- Diferencias según el área de aplicación: En la actualidad, las computadoras se

pueden dividir en cinco categorías según el tamaño físico, el desempeño y en las

áreas de aplicación:

Microcomputadoras (micros): también llamadas computadoras personales y

pueden tener el tamaño de una libreta o de un equipo de escritorio con

procesador de una sola pastilla (actualmente 2,4 y 8 núcleos) y dedicadas por lo

general a una sola persona. Se usan generalmente en oficinas, en educación y

en aplicaciones domésticas o personales.

Minicomputadoras: También son sistemas de aplicación general, pero a

diferencia de la mayor parte de los micros, generalmente atienden a varios

usuarios como servidores de red de archivos. En tamaño físico, las minis van

desde modelos de escritorio hasta unidades del tamaño de archiveros pequeños.

Son muy usadas para aplicaciones de tiempo real, tiempo compartido y muchas

otras aplicaciones.

DIFERENCIAS ENTRE LAS COMPUTADORAS

Macrocomputadoras: ofrecen velocidades de procesamiento y capacidades de

almacenamiento mayores que una mini común y además son capaces de

manejar muchos dispositivos periféricos poderosos. Se destina muchas veces

para manejar grandes procesos en lote.

Supercomputadoras: caracterizadas por su gran tamaño y enorme velocidad de

procesamiento. Para alcanzar tales velocidades tienen arquitecturas en

paralelo y son eficientes tan sólo para un rango reducido de problemas.

Normalmente se utilizan en aplicaciones científicas complejas.

Microcomputador Minicomputador Macrocomputador Supercomputador

Software: Se denomina Software al conjunto de datos e información que puede poseer

un computador; es almacenado en un dispositivo (hardware) y por lo tanto no puede

ser pesado, pero sí medido, ya que ocupa un espacio determinado de ese dispositivo.

También se conoce como software al conjunto de programas, documentos,

procedimientos y rutinas asociados con la operación de un sistema de cómputo.

Si bien es cierto, el computador no puede realizar ninguna función por sí solo; se

requiere de alguna instrucción que le dirija y organice todas las operaciones a cumplir.

Estas son las instrucciones que el programador escribe. Estas instrucciones, agrupadas en

forma de programas que serán depositados en la memoria del computador, forman lo que

se denomina software.

Por lo tanto, es un componente creado por el humano, y es lo que permite que el

computador pueda desempeñar tareas inteligentes; dirigirá en forma adecuada a los

elementos físicos o hardware. Es el software lo que indica al hardware en qué secuencia

y bajo qué lógica hay que hacer los cálculos y las manipulaciones de datos.

Como ejemplo tenemos: los Programas del Sistema Operativo, losProcesadores de Palabras, las Hojas de Cálculo, los Graficadores, etc.

Sistema Operativo: Un Sistema Operativo organiza, dirige y crea un ambiente de trabajo que el usuario encuentra a partir del momento en que se enciende su computador, y determina las características lógicas que la máquina tiene para el usuario y la manera de comunicarse con ella.

El Sistema Operativo es el programa maestro que controla todo el trabajo delmicrocomputador, como conjunto, y la ejecución de los programas deaplicación.

El Sistema Operativo es el gran administrador de los recursos del sistema, es elque controla la comunicación entre éstos y los programas de aplicación, y portanto, el que determina el ambiente general en que se realiza la actividad deprogramación. Se trata de un programa cuyo núcleo está cargado siempre enmemoria y que trabaja en los tiempos en que no se ejecuta ninguna otra tarea,atendiendo los requerimientos de usuario.

Acción: Es un suceso o acontecimiento producido por un actor (ejecutante).

tiene la característica de una duración limitada y produce un resultado bien

definido y previsto.

Instrucciones: Conjunto de caracteres que se usan para guiar a un sistema de

proceso de datos durante la ejecución de una operación (p.ej., se indica una

operación y se especifican los operandos de la instrucción).

Programa: Plan a seguir para obtener la solución de un problema. Conjunto

de instrucciones en secuencia que hacen que la computadora lleve a cabo

determinadas operaciones.

Programación: Es el proceso de escribir un programa o un software.

El proceso de ejecución de un programa escrito en un lenguaje de

programación y mediante un compilador tiene los siguientes pasos:

1. Escritura del programa fuente con un editor (programa que permite a una

computadora actuar de modo similar a una máquina de escribir electrónica) y

guardarlo en un dispositivo de almacenamiento (por ejemplo, un disco).

2. Introducir el programa fuente en memoria.

3. Compilar el programa con el compilador.

4. Verificar y corregir errores de compilación (listado de errores).

5. Obtención del programa objeto.

6. El enlazador (linker) obtiene el programa ejecutable.

7. Se ejecuta el programa y, si no existen errores, se tendrá la salida del

programa.

Etapas de la Compilació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 símbolos y reglas sintácticas y

semánticas que definen su estructura y el significado de sus elementos y

expresiones.

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 (lenguaje para el marcado de páginas

web).

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, 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 Léxico. 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 un malhecho compilador.

Cada máquina reconoce un lenguaje propio, denominado lenguaje máquina o

ensamblador, que consta de unas instrucciones muy a bajo nivel, en las cuales se accede

directamente a los elementos físicos de la máquina como por ejemplo los registros. Por

ejemplo son del tipo: suma lo que hay en dos registros o copia lo que hay en un registro

a otra posición de memoria. La unidad de control (o la unidad central de proceso o CPU)

es quien es capaz de entender estas instrucciones sencillas y controlar su ejecución.

Como ya se sabe, cada máquina tiene una configuración física diferente, y también un

lenguaje ensamblador diferente. Por ejemplo, es diferente el ensamblador de un PC que

el de un Mac.

En la primera etapa de la informática todos los programas se hacían utilizando el

código máquina, pero aparte de que es muy complicado de programar y muy difícil de

leer, una vez tenemos el programa sólo lo podemos ejecutar en un tipo de máquina

concreto. Si cambiamos de máquina perdemos todos nuestros programas

Clasificación de los lenguajes de programación: Los lenguajes de

programación se determinan según el nivel de abstracción, Según la forma

de ejecución y Según el paradigma de programación que poseen cada uno

de ellos y esos pueden ser:

Según su nivel de abstracción:

Lenguajes de bajo nivel: Los lenguajes de bajo nivel son lenguajes de

programación que se acercan al funcionamiento de una computadora. El

lenguaje de más bajo nivel es, por excelencia, el código máquina. A éste le

sigue el lenguaje ensamblador, ya que al programar en ensamblador se

trabajan con los registros de memoria de la computadora de forma directa.

Lenguajes de medio nivel: Hay lenguajes de programación que son

considerados por algunos expertos como lenguajes de medio nivel (como es el

caso del lenguaje C) al tener ciertas características que los acercan a los

lenguajes de bajo nivel pero teniendo, al mismo tiempo, ciertas cualidades

que lo hacen un lenguaje más cercano al humano y, por tanto, de alto nivel.

Lenguajes de alto nivel: Los lenguajes de alto nivel son normalmente

fáciles de aprender porque están formados por elementos de

lenguajes naturales, como el inglés. En Visual FoxPro, uno de los

lenguajes de programación más utilizados a nivel mundial, los

comandos como "IF (contador = 10) THEN exit" pueden utilizarse para

pedir a la computadora que pare si “contador” es igual a 10. Por

desgracia para muchas personas esta forma de trabajar es un poco

frustrante, dado que a pesar de que las computadoras parecen

comprender un lenguaje natural, lo hacen en realidad de una forma

rígida y sistemática.

Según la forma de ejecución

Lenguajes Compilados: Naturalmente, un programa que se escribe en unlenguaje de alto nivel también tiene que traducirse a un código quepueda utilizar la máquina. Los programas traductores que puedenrealizar esta operación se llaman compiladores. Éstos, como losprogramas ensambladores avanzados, pueden generar muchas líneas decódigo de máquina por cada proposición del programa fuente. Serequiere una corrida de compilación antes de procesar los datos de unproblema.

Los compiladores son aquellos cuya función es traducir un programaescrito en un determinado lenguaje a un idioma que la computadoraentienda (lenguaje máquina con código binario).

Al usar un lenguaje compilado, el programa desarrollado nunca seejecuta mientras haya errores, sino hasta que luego de haber compiladoel programa, ya no aparecen errores en el código

Lenguajes interpretados: Se puede también utilizar una alternativa diferente

de los compiladores para traducir lenguajes de alto nivel. En vez de traducir

el programa fuente y grabar en forma permanente el código objeto que se

produce durante la corrida de compilación para utilizarlo en una corrida de

producción futura, el programador sólo carga el programa fuente en la

computadora junto con los datos que se van a procesar. A continuación, un

programa intérprete, almacenado en el sistema operativo del disco, o

incluido de manera permanente dentro de la máquina, convierte cada

proposición del programa fuente en lenguaje de máquina conforme vaya

siendo necesario durante el proceso de los datos. No se graba el código

objeto para utilizarlo posteriormente.

Java es un hibrido entre ejecutable e interpretado (investigar la JVM)

Según el paradigma de programación:

Un paradigma de programación representa un enfoque particular o

filosofía para la construcción del software. No es mejor uno que otro

sino que cada uno tiene ventajas y desventajas. También hay

situaciones donde un paradigma resulta más apropiado que otro.

Lenguajes Imperativos: describen la programación en términos del

estado del programa y sentencias que cambian dicho estado. Los

programas imperativos son un conjunto de instrucciones que le

indican al computador cómo realizar una tarea. Ejemplos: BASIC ,

Pascal, C, C++, Java, C#, Perl.

Lenguajes Funcionales: declarativa basado en la utilización de

funciones matemáticas. Ejemplos: Puros: Haskell, Miranda. Híbridos:

Lisp, Scheme, Ocaml, Scala, ML.

Según el paradigma de programación:

Lenguajes Lógicos: consiste en la aplicación del corpus de conocimiento

sobre lógica para el diseño de lenguajes de programación; no debe

confundirse con la disciplina de la lógica computacional.

La programación lógica comprende dos paradigmas de programación: la

programación declarativa y la programación funcional. La programación

declarativa gira en torno al concepto de predicado, o relación entre

elementos. La programación funcional se basa en el concepto de función (que

no es más que una evolución de los predicados), de corte más matemático.

Ejemplo: Prolog.

Lenguajes Orientados a Objetos: La Programación Orientada a Objetos

(OOP según sus siglas en inglés) es un paradigma de programación que usa

objetos y sus interacciones para diseñar aplicaciones y programas de

computadora. Está basado en varias técnicas, incluyendo herencia,

modularidad, polimorfismo, y encapsulamiento. Ejemplos: Action Script, Ada,

C++, C#, VB.NET, Visual FoxPro, Clarion, Delphi, Java, JavaScript, PHP (en su

versión 5), Python, Ruby, Smalltalk.

El Lenguaje C. Historia y Características:

C es un lenguaje de programación creado en 1972 por Ken Thompson y Dennis M.

Ritchie en los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado

en BCPL. Al igual que B, es un lenguaje orientado a la implementación de Sistemas

Operativos, concretamente Unix. C es apreciado por la eficiencia del código que produce

y es el lenguaje de programación más popular para crear software de sistemas, aunque

también se utiliza para crear aplicaciones.

Se trata de un lenguaje débilmente tipificado de medio nivel pero con muchas

características de bajo nivel. Dispone de las estructuras típicas de los lenguajes de alto

nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a

muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan

mezclar código en ensamblador con código C o acceder directamente a memoria o

dispositivos periféricos.

El Lenguaje C. Historia y Características:

La primera estandarización del lenguaje C fue en ANSI, con el estándar

X3.159-1989. El lenguaje que define este estándar fue conocido

vulgarmente como ANSI C. Posteriormente, en 1990, fue ratificado

como estándar ISO (ISO/IEC 9899:1990). La adopción de este estándar

es muy amplia por lo que, si los programas creados lo siguen, el código

es portátil entre plataformas y/o arquitecturas. En la práctica, los

programadores suelen usar elementos no-portátiles dependientes del

compilador o del sistema operativo.

C tiene las siguientes características de importancia:

Un núcleo del lenguaje simple, con funcionalidades añadidas importantes,

como funciones matemáticas y de manejo de ficheros, proporcionadas

por bibliotecas.

Es un lenguaje muy flexible que permite programar con múltiples estilos.

Uno de los más empleados es el estructurado no llevado al extremo

(permitiendo ciertas licencias rupturistas).

Un sistema de tipos que impide operaciones sin sentido.

Usa un lenguaje de preprocesado, el preprocesador de C, para tareas

como definir macros e incluir múltiples ficheros de código fuente.

Acceso a memoria de bajo nivel mediante el uso de punteros.

C tiene las siguientes características de importancia:

Interrupciones al procesador con uniones.

Un conjunto reducido de palabras clave.

Los parámetros se pasan por valor. El paso por referencia se puede simular

pasando explícitamente el valor de los punteros.

Punteros a funciones y variables estáticas, que permiten una forma

rudimentaria de encapsulado y polimorfismo.

Tipos de datos agregados (struct) que permiten que datos relacionados (como

un empleado, que tiene un id, un nombre y un salario) se combinen y se

manipulen como un todo (en una única variable "empleado").