Está en la página 1de 14

PROGRAMAS Y PROGRAMACIÓN

Versión 1.1. REPÚBLICA DOMINICANA. 2020.


Dirección Virtual
virtual.itsc.edu.do
DESARROLLO DEL PROGRAMA

1. Introducción
Figura No.1
Lenguajes de
La Programación Es el proceso de diseñar, Programación

codificar, depurar y mantener el código fuente de


programas computacionales. El código fuente es
escrito en un lenguaje de programación.

El proceso de escribir código requiere


frecuentemente conocimientos en varias áreas
Fuente:Fuente:
distintas, además del dominio del lenguaje a https://blog.educacionit.com/2018/09/24/20-
lenguajes-de-programacion-mas-usados-en-2018/
utilizar, algoritmos especializados y lógica
formal.

Joyanes Aguilar, en su libro Fundamentos de


Programación indica: “Un programa de
computadora o programa es una secuencia de
sentencias diseñadas para ejecutar una tarea.
Programación es un proceso de planeación y
creación de un programa. Desde un punto de El propósito de
vista práctico, un programa se escribe primero la programación es
con un algoritmo en pseudocódigo o en otra crear programas que
exhiban un
herramienta de programación y luego se traduce
comportamiento
a un lenguaje de programación tal como C, C++ deseado
o Java.”

(Joyanes Aguilar, 2013, pág. 25)

2
2. Lenguajes de programación (programas y programación).
Los lenguajes de programación se utilizan Además de estas instrucciones, y
para escribir programas. Los programas de dependiendo del procesador y del lenguaje
las computadoras modernas constan de de programación, existen otras que
secuencias de instrucciones que se codifican conformarán el conjunto de instrucciones y,
como secuencias de dígitos numéricos que junto con las reglas de sintaxis, permitirán
podrían entender dichas computadoras. escribir los programas de las computadoras.
Los principales tipos de lenguajes de
Cada lenguaje de programación tiene un programación son:
conjunto o “juego” de instrucciones • Lenguaje máquina.
(acciones u operaciones que debe realizar la • Lenguaje de bajo Nivel
máquina) que la computadora podrá (ensambladores).
entender directamente en su código • Lenguajes de alto nivel.
máquina o bien se traducirán a dichos
código máquina. Las instrucciones básicas y
comunes en casi todos los lenguajes de
programación son:
- Instrucciones de entrada/salida.
- Instrucciones de cálculos.
- Instrucciones de control

Figura No.2
Proceso de transformación de un algoritmo en pseudocódigo
en un programa ejecutable

(Joyanes Aguilar, 2013, págs. 26-27)

3
3. Traductores de lenguaje: el proceso de traducción de un programa.
El proceso de traducción de un programa fuente, escrito en un lenguaje de lato
nivel a un lenguaje máquina comprensible por la computadora, se realiza mediante
programas llamados “traductores”. Los traductores de lenguaje son programas que
traducen a su vez los programas fuente escritos en lenguajes de alto nivel a código
máquina. Los traductores se dividen en compiladores e intérpretes.
Figura 3.
Proceso del Intérprete

2.1 Intérpretes:
Un intérprete es un traductor que toma un programa fuente, lo
traduce y, a continuación, lo ejecuta. Los programas intérpretes
clásicos como BASIC prácticamente ya no se utilizan, mas que en
circunstancia especiales. Si embargo, está muy extendida la versión
interpretada del lenguaje Smalltalk, un lenguaje orientado a objetos
puro.

2.2. Compiladores:
Es un programa que traduce los programas fuente escritos en lenguaje de alto
nivel a lenguaje máquina. La traducción del programa completo se realiza en una sola
operación denominada compilación del programa; es decir, se
traducen todas las instrucciones del programa en un solo
bloque. El programa compilado y depurado (eliminados los
errores del código fuente) se denomina programa ejecutable
porque ya se puede ejecutar directamente y cuantas veces se
desee; solo deberá volver a compilarse de nuevo en el caso de
que se modifique alguna instrucción del programa. De este
modo el programa ejecutable no necesita del compilador para
su ejecución. Los lenguajes compiladores típico más utilizado
Figura 4.
son: C, C++, Java, C#, Pascal, FORTRAN y COBOL Proceso del Compilador

(Joyanes Aguilar, 2013, pág. 27)

4
2.3. La compilación y sus fases:

Un compilador realiza dos tareas compilador.


principales: análisis del programa a 4. Verificar y corregir errores de
compilar y síntesis de un programa en compilación (listado de errores).
lenguaje máquina que, cuando se ejecute, 5. Obtención del programa objeto.
realizara correctamente las actividades 6. El enlazador (linker) obtiene el
descritas en el programa fuente. programa ejecutable.
Para conseguir el programa máquina 7. Se ejecuta el programa y, si no
real se debe utilizar un programa llamado existen errores, se tendrá la
montador o enlazador (linker). El proceso salida del programa.
de montaje conduce a un programa en
lenguaje máquina directamente ejecutable.
Este proceso suele tener 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
Figura No.5
memoria. Fases de la Compilación
3. Compilar el programa con el

(Joyanes Aguilar, 2013, pág. 28)

5
2.4. Evolución de los lenguajes de programación

Desde el inicio de las primeras les denominó de segunda generación. Pues


computadores, desde la década del 1940, el nombre de la primera generación se
nacieron las primeras computadoras reservó para los lenguajes de máquina.
digitales, el lenguaje que se utilizaba para
Figura 6
programar era el lenguaje máquina que Ejemplo de lenguaje de alto nivel
traducía directamente el código máquina
(código binario) comprensible para las
computadoras. Las instrucciones en
lenguaje máquina dependían de cada
computadora y debido a la dificultad de su
escritura, los investigadores de la época
simplificaron el proceso de programación
desarrollando sistemas de notación en los
cuales las instrucciones se representaban
en formatos nemónicos (nemotécnico) en
vez de en formatos numéricos que eran más La tercera generación de los lenguajes de
difíciles de recordar. Por ejemplo, mientras programación comenzaron a inventarse en
la instrucción: las décadas de 1950 y 1960, éstos diferían
Mover el contenido del registro 4 al registro 8 de las generaciones anteriores porque sus
Se podía expresar en lenguaje máquina como: instrucciones eran de alto nivel
4048 o bien 0010 0000 0010 1000 (compresibles por el programador, como si
En código nemotécnico podía aparecer como: fueran lenguajes naturales) e
MOV R4 R8
independientes de la máquina. Éstos
lenguajes se llamaron de ALTO NIVEL,
Para realizar la conversión de los
programas escritos en código nemotécnico algunos conocidos son FORTRAN
a lenguaje máquina, se crearon los (FORmula TRANslator) que fue creado para
programas ensambladores (assemblers). aplicaciones científicas y de ingeniería, y
Estos ensambladores son programas que COBOL (COmmon Business-Oriented
traducen a programas escritos en Language), que fue desarrollado por la
nemotécnico en instrucciones numéricas en
marina de Estados Unidos, para
lenguaje máquina que son compatibles y
legibles por la máquina. Estos programas se aplicaciones de gestión o administración.
les llamó Ensambladores porque su trabajo Con el paso de los años aparecieron nuevos
era ensamblar las instrucciones reales de la lenguajes tales como Pascal, BASIS, C,
máquina con los nemotécnicos e C++, Ada, Java, C#, HTML, XML y
identificadores que representan las JavaScript.
instrucciones escritas en ensamblador. Se
(Joyanes Aguilar, 2013, pág. 29)
6
2.5. Paradigmas de programación.

Cuando hablamos de los paradigmas de la


programación nos referimos a los enfoques
alternativos de los procesos de 2.5.2 Lenguajes declarativos.
programación, representa En contraste con el paradigma imperativo,
fundamentalmente enfoques diferentes el paradigma declarativo solicita al
para la construcción de soluciones a programador que describa el problema en
problemas y por consiguiente afectan al lugar de encontrarle una solución
proceso completo de desarrollo de software. algorítmica; es decir, un lenguaje
Los paradigmas de programación clásicos declarativo utiliza el principio del
son: procedimental (o imperativo), razonamiento lógico para responder a las
funcional, declarativo y orientado a objetos. preguntas o cuestiones consultadas. Se
basa en la lógica formal y en el cálculo de

2.5.1. Lenguajes imperativos


(procedimentales).
Representa el enfoque o método tradicional
de programación. Un lenguaje imperativo es
un conjunto de instrucciones que se
ejecutan una por una, de principio a fin, de
modo secuencial, excepto cuando
intervienen instrucciones de salto de
secuencia o control. Este paradigma define
el proceso de programación como el
desarrollo de una secuencia de órdenes predicados de primer orden. El
(comandos) que manipulan los datos para razonamiento lógico se basa en la
producir los resultados deseados. Por deducción. El lenguaje declarativo por
consiguiente, el paradigma imperativo excelencia es PROLOG.
semana un enfoque del proceso de
programación mediante la realización de un
2.5.3 Lenguajes orientados a
algoritmo que resuelve de modo manual el
objetos.
problema y a continuación expresa ese Este paradigma de la programación se
algoritmo como una secuencia de órdenes. asocia con el proceso de programación
En un lenguaje procedimental cada llamado programas orientada a objetos
instrucción es una orden o varias órdenes (POO) que consiste en un enfoque
para que la computadora realice alguna totalmente distinto al proceso
tarea específica. procedimental. Guarda analogía con la vida
real, se basa en el diseño de construcción
7
de objetos que se componen a su vez de herencia y polimorfismo. Smaltalk es otro
datos y operaciones que manipulan esos lenguaje orientado a objetos muy potente y
datos. de gran impacto en el desarrollo del
Los orígenes de la POO se remontan a los software que se ha realizado en las últimas
tipos abstractos de datos como parte décadas.
constitutiva de una estructura de datos. C++
pertenece a la POO y es una extensión del
lenguaje C y contiene las tres propiedades
más importantes: encapsulamiento,

8
2.6. Metodología de la programación.

Para el diseño y la construcción de Secuencia


programas existen dos enfoques muy Decisión (también denominada
populares: estructurado y el enfoque selección)
orientado a objetos. bucles o lazos (también denominados
repetición o iteración)
2.6.1. Programación estructurada. La estructura secuencial ejecuta las
Utiliza técnicas tradicionales del campo de sentencias en el orden en que están escritas
la programación y que data de las décadas o se semana expresamente. La estructura
de 1960 y 1970, específicamente desde la de selección se implementa en uno de los
creación del lenguaje Pascal por Niklaus tres formatos siguientes:
Wirth. Es un enfoque específico que Sentencia if (si): selección única
produce programas bien escritos y muy Sentencia if-else (si-entonces): selección
legibles. Trata de escribir un programa de doble
acuerdo con unas reglas y un conjunto de Sentencia switch (según_sea): selección
técnicas. múltiple
Las reglas de esta programación se basan La estructura de repetición se implementa
en la modularización, es decir, en la división en tres formatos diferentes:
de un problema en subproblemas más Sentencia while (mientras)
pequeños (módulos), que a su vez se Sentencia do-while (hacer-mientras)
pueden dividir en otros subproblemas, lo Sentencia for (desde/para)
que implica un diseño descendente. C,
Pascal y FORTRAN, y lenguajes similares, 2.6.2. Programación Orientada a
se conocen como lenguajes Objetos (POO).
La POO es el paradigma de programación
procedimentales (por procedimientos). Es
dominante en la actualidad y ha sustituido
decir, cada sentencia o instrucción semana
las técnicas Las técnicas de programación
al compilador para que realice alguna tarea:
estructurada comentabas antes. Java es
obtener una entrada, producir una salida,
totalmente orientada a objetos y es
sumar tres números, dividir entre cinco, etc.
importante que usted este familiarizado con
Con el paso de los años, la idea de dividir el
la P OO para hacer a Java más productivo
programa en funciones fue evolucionando y
y eficiente. C++ Tiene carácter híbrido ya
se llegó al agrupamiento de las funciones en
que posee las características de orientación
otras unidades más grandes llamadas
a objetos y también las características
módulos (normalmente, en el caso de C,
estructuradas.
denominadas archivos o ficheros).
La programación orientada a objetos se
Las técnicas de programación estructurada
compone de objetos. Un objeto es un
incluyen construcciones o estructuras
elemento suficiente de un programa de
(instrucciones) básicas de control
computadora que representa un grupo de
9
características relacionadas entre sí y está problemas he identificar los componentes
diseñado para realizar una tarea específica. denominados objetos que forman el soporte
Muchos objetos se obtienen de una de la solución y determinar cómo
biblioteca y otros se diseña a la medida. Es interactúan esos objetos entre sí.
decir, la programación orientada a objetos Los objetos constan de datos y operaciones
trabaja dentro de un mismo principio: Un que se realizan sobre estos datos. Un objeto
programa trabaja con objetos creados para combina en una única entidad o
una finalidad específica y otros objetos componentes, datos y operaciones
existen creados de modo estándar. Cada (funciones/procedimientos en programación
objeto sirve para un rol específico el estructurada y métodos en Programación
programa global. orientada a objetos). De acuerdo con este
Para problemas pequeños, la división en planteamiento, antes de diseñar y utilizar
pequeños subproblemas puede funcionar objetos se necesitará aprender cómo
bien. En el caso de problemas grandes o representar los datos en la memoria de la
complejos, los objetos funcionan mejor. computadora, Manipular los datos y el modo
Consideremos el caso de una aplicación de implementar las operaciones.
web típica como un navegador web o un la creación de operaciones requiere la
buscador también de la web. Supongamos, escritura de los correspondientes algoritmos
por ejemplo, que la aplicación requiere 3000 y su implementación en Java. En el enfoque
módulos paréntesis (funciones o orientado a objetos las múltiples
procedimientos, en la jerga estructurada) operaciones necesarias de un programa
que que manipulan todos los datos globales utilizan métodos para implementar los
del problema. Si el problema se resuelve algoritmos. Estos algoritmos utilizarán
con programación orientada a objetos, se instrucciones o sentencias de control, de
podrían crear solo 100 clases (la plantilla selección, repetitivas o iterativas.
que permite crear objetos) de modo que El paso siguiente para trabajar como objetos
cada clase contuviese 30 procedimiento o requiere encapsular en una única unidad los
funciones (métodos en orientación a datos y operaciones que manipulan esos
objetos). Este sistema facilita el diseño y datos. En Java (y en otros lenguajes
construcción de los programas ya que es orientados a objetos cómo C++ y C#) el
fácil seguir la traza del problema o localizar mecanismo que permite combinar datos y
errores entre los 30 métodos de cada clase operaciones sobre estos datos en una
en lugar de en 3,000. unidad se denomina clase. una Clase es
una plantilla o modelo que permite crear
En el diseño orientado a objetos (DOO) el objetos a partir de la misma.
primer paso es el proceso de resolución de

10
2.7. Herramientas de programación.
La programación en C, C++, Java o que los programadores hallan tecleado los
cualquier otro lenguaje de programación primeros caracteres de las palabras.
requiere herramientas para la creación de Un editor de texto clásico es NotePad que
un programa. Las herramientas más útiles permite crear (escribir) un programa en Java
son editor, compilador y depurador de o C++ siguiendo las reglas o sintaxis del
errores y puesta a punto del programa, lenguaje; otro edictos típico es Edit
aunque existen otras herramientas, sobre (Edit.com) del sistema operativo MS-DOS.
todo en el caso de desarrollo profesional. El editor debe escribir programa fuente
Estas herramientas pueden ser siguiendo las reglas de sintaxis del lenguaje
independientes y utilizadas de esta forma o de programación y luego en una unidad de
bien estar incluidas en entornos de almacenamiento como archivo de texto. Así,
desarrollo integradas y utilizadas como un por ejemplo, en el caso de Java un
todo. En el aprendizaje profesional se programa que se desea llamar
recomienda conocer ambas categorías de MiPrimerPrograma (el nombre de una clase
herramientas y medida que las vaya en Java) se debe guardar después de
dominando seleccionar cuáles considera la escribir en un archivo de texto denominado
más idónea para su trayectoria profesional. MiPrimerPrograma.java.

2.7.1. Editores de texto. 2.7.2. Programa ejecutable


Un editor de texto es un programa de Programa o archivo ejecutable es el archivo
aplicación que permite escribir programas. binario (código máquina) cuyo contenido es
Los editores que sirven para la escritura de interpretado por la computadora como un
programas en lenguaje de alto nivel son programa. el ejecutable contiene
diferentes de los procesadores de texto instrucciones en código máquina de un
tradicionales como Word de Microsoft, procesador específico, en los casos de
Google Docs o Zoho. lenguajes como C o C++, ya que se requiere
Un editor de software ya sea independiente un compilador diferente para cada tipo de
o integrado, es un entorno de desarrollo que CPU, o bien bytecode en Java, qué es el
normalmente debe proporcionar las código máquina que se produce cuando se
características adecuadas para la compila un programa fuente Java y qué es
adaptación de las normas de escritura de la el lenguaje máquina de la máquina virtual
sintaxis del lenguaje de programación (JVM), que es independiente de cualquier
correspondiente y también algunas tipo de CPU. en el ejemplo anterior y en el
propiedades relacionadas y con la sintaxis caso de Java el código traducido por el
de ese lenguaje; que reconozca sangrados compilador viene en bytecode y se
de línea y que reconozca y complete almacena en el compilador con el nombre
automáticamente palabras clave MiPrimerPrograma.class.
(reservadas) del del lenguaje después de

11
2.7.3. Proceso de compilación/ejecución
El intérprete Java traduce cada instrucción de un programa.
en bytecode en un tipo específico del Las computadoras sólo entienden el
lenguaje máquina de la CPU y a lenguaje máquina. por consiguiente, para
continuación ejecuta la instrucción (desde ejecutar un programa con éxito, el código
un punto de vista práctico El compilador una fuente (el programa escrito en un lenguaje
vez que ha obtenido el código máquina de programación C / C++, Java o C#) o
bytecode, utiliza un cargador qué es un programa fuente, se debe traducir a
programa qué recibe a su vez las funciones lenguaje máquina mediante un compilador o
o clases correspondientes de una biblioteca en su caso un intérprete. el proceso de un
Java y la salida alimenta el intérprete qué va programa escrito un lenguaje de
ejecutando las sucesivas instrucciones). En programación de alto nivel consta de 5
el caso de Java se requiere un tipo diferente etapas: editar, compilar, enlazar, cargar y
de intérprete para cada procesador o CPU. ejecutar, aunque según el tipo de lenguaje
Sin embargo, los intérpretes son programas de programación CFF /C++ o Java alguna
más sencillos que los compiladores, pero de las etapas puede descomponerse en
como el intérprete Java traduce las otras etapas.
instrucciones en bytecodes una detrás de existen dos métodos para procesar
otras, el programa Java se ejecuta más programas completos (compilación y
lentamente. ejecución). unos son los programas de
consola, normalmente conocidos como
consola de línea de comandos, que son
herramientas en las que los programadores
deben teclear comandos (las órdenes) en
una consola o ventana Shell y ejecutar paso
a paso las diferentes etapas de compilación.
El 2º método es el más utilizado ya que
suele ser más cómodo de usar: son los EDI
(Integrated Development Environment),
entorno de desarrollo integrado, que
permiten la edición, compilación y ejecución
de un programa de modo directo.

Figura 8
Proceso de ejecución de un programa en
Java

12
2.8 Consola de línea de comandos.

La compilación con la consola de línea de En los últimos años han aparecido entornos
comandos es el procedimiento más antiguo de desarrollo profesionales excelentes y en
y clásico de la compilación/ejecución de un muchos casos gratuitos, cómo es el caso de
programa fuente. Con este método se edita Eclipse y de NetBeans, Con la gran ventaja
el programa fuerte con un editor de archivos de que en muchas ocasiones sirven para
de texto cómo, por ejemplo, el bloc de notas diferentes lenguajes de programación.
del sistema operativo Windows
(Notepad.exe) o el Edit (Edit.com) Del Figura 9.
sistema operativo ms dos; una vez editado Entorno de línea de comando

el programa fuente con el editor se compila


el programa con el compilador. El editor y el
compilador se ejecutan directamente desde
la línea de comandos del sistema operativo
a la ventana de comandos del sistema
operativo.

(Joyanes Aguilar, 2013, págs. 31-35)

2.9. Entorno de desarrollo integrado (IDE).

El entorno de desarrollo integral (EDI) pueden estar orientados a uno o varios


contiene herramientas que soportan el lenguajes de programación, aunque
proceso de desarrollo de software. Se generalmente están orientados a uno solo.
compone de un editor para escribir y editar Existen entornos de desarrollo para casi
programas, compilador, un depurador para todos los lenguajes de programación, tales
detectar errores lógicos (errores que como C, C++, Python, Java, C#, Delphi,
originan una ejecución no correcta del Visual Basic, Pascal, Objective-C (el
programa) un constructor de interfaz gráfico Lenguaje desarrollo de aplicaciones de
de usuario (GUI). además, suelen incluir Apple para teléfonos inteligentes iPhone),
herramientas para compilar e interpretar, en etcétera.
su caso, los programas fuente. los EDI

13
BIBLIOGRAFIA
• Joyanes Aguilar, Luis, (2008). Fundamentos de Programación Algoritmos,
estructura de datos y objetos (Cuarta Edición). España.

• Zapata Ospina, Carlos Andrés J. F. (2006). Fundamentos de programación,


Guía de auto-enseñanza. Colombia.

14

También podría gustarte