Está en la página 1de 9

UNIVERSIDAD DE ORIENTE

NÚCLEO DE ANZOÁTEGUI

ESCUELA DE INGENIERÍA Y CIENCIAS APLICADAS

DEPARTAMENTO DE COMPUTACION Y SISTEMA

LENGUAJE DE PROGRAMACIÓN

SECCIÓN 01

TRABA
JO 1

NOMBRE: PROFESOR:

JOSUE BAEZ MANUEL CARRASQUERO

CI:

25.589.768
1. Que es programación

La programación es el uso de lenguajes informáticos para imprimir en un sistema


computacional funciones y procesos deseados. La programación de una
computadora es la forma de indicar a la computadora qué es lo que tiene que hacer.

La programación incluye la especificación del algoritmo definida como la secuencia de


pasos y operaciones que el programa debe realizar para resolver un problema. Para que
el algoritmo funcione, el programa debe estar implementado en un lenguaje compatible
y correcto

2. Que es un lenguaje de programación

Es un lenguaje formal que, mediante una serie de instrucciones, le permite a un


programador escribir un conjunto de órdenes, acciones consecutivas, datos
y algoritmos para, de esa forma, crear programas que controlen el comportamiento
físico y lógico de una máquina.

Dicho lenguaje está compuesto por símbolos y reglas sintácticas y semánticas,


expresadas en forma de instrucciones y relaciones lógicas, mediante las cuales se
construye el código fuente de una aplicación o pieza de software determinado

3. Que es un paradigma de programación

Un paradigma de programación es un estilo de desarrollo de programas. Es decir, un modelo


para resolver problemas computacionales. Los lenguajes de programación, necesariamente,
se encuadran en uno o varios paradigmas a la vez a partir del tipo de órdenes que permiten
implementar, algo que tiene una relación directa con su sintaxis.

4. Nombre los tipos de paradigma de programación

Los principales paradigmas de programación:

 Imperativo
 Declarativo
 Lógico.
 Funcional
 Orientado a objetos

Otros son de aparición relativamente reciente y no forman parte del grupo principal:

 Dirigido por eventos


 Orientado a aspectos

5. Explique cada uno de los componentes de la máquina de von Neumann

Unidad aritmética lógica La ALU es el área de la computadora en la cual se realizan


operaciones aritméticas y lógicas con datos. El tipo de operación que se realizará se
determina; por medio de la unidad de control (flecha 1). Los datos que serán utilizados
por la ALU pueden provenir de la unidad de memoria (flecha 2) o de la unidad de
entrada (flecha 3). Lo resultados de operaciones realizadas en la ALU pueden
transferirse a la unidad de memoria para ser almacenados (flecha 4) o a la unidad de
salida (flecha 5).

Unidad de memoria La memoria almacena grupos de dígitos (palabras) binarios que


pueden representar instrucciones (programa) que la computadora ejecutará y los
datos que serán operados por el programa. La memoria también sirve como
almacenamiento de resultados intermedios y finales de operaciones aritméticas
(flecha 4). La operación de la memoria es controlada por la unidad de control (flecha
6), que indica una operación de lectura de escritura. Una localidad dada en la memoria
se accede por la unidad de control, la cual, proporciona el código de dirección
adecuado (flecha 7). Puede escribirse información en la memoria de la ALU o de la
unidad de entrada (flecha 8), una vez mas bajo el mando de la unidad de control. Puede
leerse información de la memoria de la ALU (flecha 2) o de la unidad de entrada
(flecha 9).
Unidad de entrada Esta unidad consta de todos los dispositivos que se usan para
almacenar información y datos que son externos a la computadora y colocarlos en la
unidad de memoria (flecha 8) o la ALU (flecha 3). La unidad de control determina
hacia dónde se envía la información de entrada (flecha 10). La unidad de control se
utiliza para meter el programa y los datos en la unidad de memoria antes de poner en
marcha la computadora. Esta unidad se usa asimismo para introducir datos en la ALU
desde un dispositivo externo durante la ejecución de un programa. Algunos de los
dispositivos de entrada comunes son los teclados, disquetera, unidad de CD, lectoras
de tarjetas perforadas, unidades de disco magnético, unidades de cinta magnética y
convertidores de analógico a digital (ADC).

Unidad de salida Esta unidad consta de los dispositivos que se usan para transferir
datos e información de la computadora al "mundo exterior". Los dispositivos de salida
son dirigidos por la unidad de control (flecha 12) y pueden recibir datos de la memoria
la (flecha 9) o de la ALU (flecha 5), los cuales después se colocan en forma adecuada
para su uso externo. Algunos ejemplos de dispositivos de salida comunes son
dispositivos de exhibición LED, luces indicadoras, impresoras, unidades de disco o
cinta, monitores de video y convertidores de digital a analógico (DAC).

Unidad de control La función de la unidad de control ahora debe ser obvia. Dirige la
operación de todas las otras unidades ofreciendo señales de temporización y control.
En cierto sentido, la unidad de control es como el director de una orquesta, quien es el
responsable de mantener a cada uno de los miembros de la orquesta en sincronización
adecuada. Esta unidad contiene circuitos lógicos y de temporización que generan las
señales adecuadas que se necesitan para ejecutar cada instrucción en un programa.

Unidad central de proceso (CPU) En la figura 1 la ALU y la unidad de control se


muestran combinadas en la llamada unidad de o (CPU). Lo anterior se hace comúnmente
para separar los cerebros de la computadora de otras unidades. En una
microcomputadora la CPU es usualmente un solo microcircuito el microprocesador o a
lo más el microprocesador con uno o dos microcircuitos adicionales.

6. Que es programación imperativa

La programación imperativa es la forma natural de programar un computador, es el


estilo de programación que se utiliza en el ensamblador, el estilo más cercano a la
arquitectura del computador. Es el paradigma de programación más antiguo. Este
paradigma define un programa como una secuencia claramente definida de
instrucciones de computadora.

7. Reseña histórica de la programación imperativa

La programación imperativa es mucho más cercana a la arquitectura física del


computador que la programación declarativa. La arquitectura que habitualmente se
utiliza en los computadores y que es la base de la gran mayoría de lenguajes de
programación es la arquitectura tradicional propuesta por Von Newmann. En esta
arquitectura los datos se almacenan en una memoria a la que se accede desde una
unidad de control ejecutando instrucciones de forma secuencial.

El estilo de programación imperativo constituye la primera forma de programar


ordenadores. El ensamblador y el código máquina que se utilizaban antes de
desarrollarse los primeros lenguajes de programación tienen un enfoque totalmente
imperativo. Los primeros lenguajes de programación de alto nivel (como el Fortran)
eran abstracciones del lenguaje ensamblandor y mantenían este enfoque. Lenguajes
más modernos como el BASIC o el C han continuado esta idea.

En los años 60 se introducen conceptos de programación procedural en los lenguajes


de programación. La programación procedural es un tipo de programación imperativa
en el que los programas se descomponen procedimientos (también llamados subrutinas
o funciones). Los cambios de estado se localizan en estos procedimientos y se
restringen a valores pasados como parámetros o a los valores devueltos por los
procedimientos.

A finales de la década de los 60 Edsger W. Dijkstra, una de las figuras más


importantes en la historia de la computación, publicó en la revista Communications of
the ACM el importante artículo GOTO statement considered harmful en el que
propone que la sentencia GOTO se elimine de los futuros lenguajes de programación.
Este artículo marca el inicio de una nueva tendencia de programación
denominada programación estructurada que, manteniendo la programación imperativa,
intenta conseguir lenguajes que promuevan programas correctos, modulares y
mantenibles. Lenguajes representativos de la programación estructurada son el Pascal,
el ALGOL 68 o el Ada.

A finales de la década de los 70 la programación orientada a objetos extiende estos


conceptos y, siguiendo con el enfoque imperativo, introduce otras características más
avanzadas.
8. Características de la programación imperativa

 Las dos características principales del paradigma imperativo son, por tanto, la
existencia de estado modificable y la ejecución de sentencias de control del programa.

 Estado de un programa

En la programación imperativa el estado del programa se mantiene en forma


de datos en la memoria del computador. Estos datos son modificables
mediante sentencias de asignación.

 Modificación de datos

Uno de los elementos de la arquitectura de Von Newmman son las celdas de memoria
en la que se almacenan los datos. Estas celdas de memoria tienen direcciones únicas y
pueden modificarse con sentencias específicas. Una tarea fundamental de un lenguaje
imperativo es proporcionar una abstracción que convierta estas celdas de memoria en
conceptos de más alto nivel, en forma de datos accesibles y modificables

 Almacenamiento de datos en variables: valor y referencia

Todos los lenguajes de programación imperativos definen variables que se encargan de


almacenar o referenciar el estado del programa. Dependiendo de si se el tipo de la
variable almacena valores o referencias hablamos de tipos de valor ( value types) y
tipos de referencia (reference types).

 Igualdad de valor y de referencia

Los lenguajes imperativos en los que se definen referencias cuyos valores pueden ser
modificados necesitan definir dos tipos de igualdad: igualdad de valor y de referencia.

Dos variables son iguales en valor cuando contienen los mismos valores,
independientemente de si se encuentran en la misma dirección. Dos variables son
iguales en referencia cuando apuntan a un mismo objeto o dato. Unas variables pueden
ser iguales en valor, pero no en referencia. Si dos variables son iguales en referencia
también lo serán en valor.

 Sentencias de control

La otra característica fundamental de la programación imperativa tiene también su


origen en la arquitectura de Von Newman. Se trata de la ejecución de pasos
elementales en los que el control va modificando el contador de programa que indica la
siguiente instrucción a ejecutar.
Las sentencias de control de los lenguajes imperativos que utilizan la programación
estructurada se pueden agrupar en: secuencia, selección e iteración:

 Las sentencias de secuencia definen instrucciones que son ejecutados una


detrás de otra de forma síncrona. Una instrucción no comienza hasta que la
anterior ha terminado.
 Las sentencias de selección definen una o más condiciones que determinan las
instrucciones que se deberán ejecutar.
 Las sentencias de iteración definen instrucciones que se ejecutan de forma
repetitiva hasta que se cumple una determinada condición.

Además, en la programación imperativa también debemos entender una llamada a un


procedimiento o una función como una sentencia de control. En ella se modifica el
contador del programa y se pasan a ejecutar las sentencias definidas en el
procedimiento.

El modelo de evaluación de la programación imperativa ya no es el modelo de


sustitución, sino un modelo basado en la ejecución de sentencias y la modificación de
los datos almacenados.

9. Ventajas y desventajas de la programación imperativa

Ventajas Desventajas

Fácilmente legible. El código se convierte rápidamente en demasiado


amplio y difícil de abarcar.

Fácil de aprender en lo relativo a Mayor riesgo durante la edición.


comportamientos.

Un modelo fácilmente comprensible El mantenimiento bloquea el desarrollo de la


para los principiantes (vía de aplicación, ya que la programación funciona
solución). estrechamente con el sistema.

Se pueden tener en cuenta La optimización y la ampliación son más difíciles.


características de casos especiales de
la aplicación.

10. Cuáles son los enfoques asociados con la programación imperativa,


explique cada uno
La programación estructurada, la procedimental y la modular son tres enfoques
adicionales subordinados al paradigma de programación imperativa para escribir y
estructurar código software.

 Programación estructurada

El enfoque estructurado de programación constituye una forma simplificada de


programación imperativa. La principal modificación del principio básico radica en que,
en lugar de instrucciones de salto absolutas (instrucciones que provocan que el
procesamiento no continúe con la siguiente instrucción, sino en otro lugar) este
paradigma de programación de software prevé el uso de bucles y estructuras de
control. Un ejemplo de ello es el uso de “do...while” para realizar una instrucción de
forma automática siempre que se dé una determinada condición (al menos una vez).

 Programación procedimental

El paradigma de programación procedimental amplía el enfoque imperativo con la


posibilidad de desglosar algoritmos en porciones manejables. Estos se denominan como
procedimientos, dependiendo del lenguaje de programación, o también como
subprogramas, rutinas o funciones. El sentido y el propósito de esta distribución es
hacer que el código de programa sea más claro y evitar las repeticiones innecesarias
de código. Mediante la abstracción de los algoritmos, el paradigma de software
procedimental representa un paso decisivo desde los lenguajes ensambladores simples
hasta los lenguajes estándar complejos.

 Programación modular

La programación modular también se clasifica como un subtipo del paradigma de


programación imperativo. En principio, es muy similar al enfoque procedimental, o más
bien lo adapta a los requerimientos de proyectos de software mayores y más amplios.
En este sentido, el código fuente se divide específicamente en bloques parciales
lógicos independientes los unos de los otros para proporcionar más transparencia y
facilitar el proceso de debugging (resolución de errores). Los bloques parciales
individuales, denominados módulos, se pueden probar por separado antes de
vincularlos posteriormente a una aplicación conjunta.

11. De una lista de 10 lenguajes imperativos que se usan en la actualidad

1. Fortran
2. Java
3. PHP
4. Pascal
5. C
6. C#
7. C++
8. Perl
9. Lua
10. Python

12. Que es un intérprete

En ciencias de la computación, intérprete o interpretador es un programa informático


capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel.
Los intérpretes se diferencian de los compiladores en que mientras estos traducen un
programa desde su descripción en un lenguaje de programación al código de máquina
del sistema, los primeros (los intérpretes) sólo realizan la traducción a medida que sea
necesaria, típicamente, instrucción por instrucción, y normalmente no guardan el
resultado de dicha traducción

13. Que es un lenguaje compilado

Un lenguaje compilado es un lenguaje de programación cuyas implementaciones son


normalmente compiladores (traductores que generan código de máquina a partir
del código fuente) y no intérpretes (ejecutores paso a paso del código fuente, donde
no se lleva a cabo una traducción en la pre-ejecución).
Los programas compilados a código nativo en tiempo de compilación tienden a ser más
rápidos que los traducidos en tiempo de ejecución, debido a la sobrecarga del proceso
de traducción.
14. Que es un lenguaje de bajo nivel

Un lenguaje de programación de características de bajo nivel o de primera generación,


es aquel en el que sus instrucciones ejercen un control directo sobre el hardware y
están condicionados por la estructura física de las computadoras que lo soportan. El
uso de la palabra bajo en su denominación no implica que el lenguaje sea menos potente
que un lenguaje de alto nivel, sino que se refiere a la reducida abstracción entre el
lenguaje y el hardware.

También podría gustarte