Concepto de programa.
Lenguajes.
Lenguajes de alto nivel.
Programación orientada a objetos.
Lenguajes páginas web.
Práctica de programación.


Concepto de programa.

Para usar un ordenador, primero hay que indicarle qué trabajo se desea realizar y cómo debe hacerlo. Esta es la función del software, de los programas.

Desde un punto de vista de un sistema de proceso de datos, vamos a considerar a un programa como el conjunto de instrucciones que se le dan al ordenador para resolver un problema de proceso de datos.

Desde el punto de vista funcional un programa se estructura en las siguientes partes:

Elaboración propia

Para que las instrucciones de un programa puedan ser ejecutadas por un ordenador han de estar escritas en un lenguaje que el ordenador pueda entender.


Lenguajes.

El conjunto de reglas, símbolos y técnicas necesarios para la codificación de un programa recibe el nombre de lenguaje de programación.

Todo lenguaje viene definido por una gramática que no es más que el conjunto de reglas que se aplican a un alfabeto constituido por un conjunto de símbolos utilizados.

Una clasificación muy extendida de los lenguajes de programación es la siguiente:

La programación de aplicaciones está muy influenciada por el sistema operativo, tanto en lo que se refiere al desarrollo en sí mismo como al funcionamiento del programa final.


Juego de caracteres

Es la colección de caracteres que puede emplearse en los programas. Casi todos emplean letras y dígitos, aunque presentan muchas diferencias en los caracteres especiales.


Palabras reservadas

Tienen un significado especial en los programas, y no pueden emplearse para ningún otro uso.


Reglas sintácticas

Son el conjunto de normás que definen la estructura del programa.

Los bloques o módulos en que se divide un programa se denominan subrutinas, procedimientos o funciones que se activan mediante llamadas desde otras partes del programa. Algunos permiten que una función se llame a si misma (recursividad).


Datos

Los datos pueden ser de tipo numérico o cadenas de caracteres; los numéricos pueden ser enteros o reales. También pueden existir datos booleanos o variables lógicas.

Algunos lenguajes prestan una considerable atención al aspecto o formato de los datos.

Las matrices son tablas de elementos del mismo tipo y los registros pueden contener datos de diferentes tipos.

Por lo general los datos pueden ser

El proceso por el que una variable adquiere un determinado valor se denomina asignación.

Las variables pueden requerir que se declaren, y tener alcance local o global.


Expresiones, sentencias y funciones.

Los operadores se utilizan para representar operaciones. Operando es aquello sobre lo que actúa el operador.

Una expresión es una combinación de operadores y operandos.

Las operaciones aritméticas están contempladas en casi todos los lenguajes de alto nivel, y las operaciones lógicas AND, OR y NOT, independientes o combinadas en una expresión.

Todos los lenguajes tienen un orden de prioridad o precedencia que especifica el orden en que se ejecutan las operaciones dentro de una expresión.

El tratamiento de operaciones de entrada/salida es muy diverso.

Una sentencia es una orden dada al ordenador.

Expresiones y sentencias se pueden agrupar en funciones, como conjunto de instrucciones que permiten procesar las variables para obtener un resultado, o ejecutar operaciones.


Estructuras de control.

Bajo el punto de vista de su organización dentro de un programa, las sentencias se pueden agrupar en tres familias distintas:


Lenguajes de alto nivel.

Los lenguajes de alto nivel, tambien llamados evolucionados, son los que más se utilizan en la actualidad. El principal problema que presentan es la gran cantidad de ellos que existen, además de que algunos de ellos han desarrollado diferentes versiones (dialectos).

LENGUAJE
AÑO
ORIGEN DEL NOMBRE
APLICACIÓN
FORTRAN
54
FORmula TRANslator
Científica
COBOL
59
COmmon Busines Oriented Languaje
Comercial
ALGOL
60
ALGOrithmic Languaje
Científica
LISP
60
LISP Procesor
Inteligencia artificial
PL/1
64
Programing Languaje v.1
Comercial y científica
BASIC
65
Beginner´s All purpose Simbolic Instruction Code
Propósito general y Enseñanza
APL
67
A Programming Languaje
Científico
PASCAL
71
BLAISE PASCAL
Científico y universitario
PROLOG
71
PROgrammin in LOGic
Inteligencia artificial
PILOT
73
Enseñanza asistida por ordenador
C
74
Compiler
Técnico científico
ADA
80
Lady Augusta ADA Byron
Propósito general

Además de poderlos clasificar como de propósito general o de propósito especial, pueden clasificarse como:

Existen lenguajes híbridos (como el C++) permiten mezclar la programación procedimental con la orientada a objetos.

El lenguaje de alto nivel está orientado hacia la resolución de una determinada clase de problemas. Es un método conveniente y sencillo de describir las estructuras de información y las secuencias de acciones necesarias para ejecutar una tarea concreta.

Un lenguaje de alto nivel es independiente de la arquitectura del ordenador que lo soporta. (Aunque en la práctica no siempre se alcanza esta independencia).

Un lenguaje de alto nivel, además:

Algunos lenguajes (COBOL o Foltran) necesitan compilar su código, es decir se realiza su traducción hasta el lenguaje que entiende el ordenador antes de la ejecución del programa.

Los lenguajes interpretados (APL), en los que la traducción se realiza a la vez que la ejecución.

Los lenguajes de programación visual, son esencialmente entornos gráficos de desarrollo en los que, sin necesidad de poseer un profundo conocimiento de sintaxis complejas, se pueden realizar aplicaciones completas. Delphi, ObjectVision y Visual Basic son buenos ejemplos de ello.


Programación orientada a objetos.

La programación orientada a objetos facilita el diseño, desarrollo y mantenimiento del software:

La programación orientada a objetos (OOP), se apoya más en los sustantivos (objetos) que en su funcionalidad (verbos).

Existe un paralelismo muy interesante y natural entre las categorías mentales del ser humano y los conceptos de la programación orientada a objetos. En efecto, los objetos corresponden a los nombres sustantivos, los valores de sus propiedades a los adjetivos, y su comportamiento (los métodos asociados a la clase a la que pertenece el objeto) a los verbos.

Un lenguaje orientado a objetos tiene tres características básicas (aunque no todos los lenguaje las soportan):

Además de los tres elementos esenciales de la programación orientada a objetos (objetos, clases y herencia) y del paso de mensajes (alternativa de la llamada de subrutina), existen otras propiedades que también se consideran fundamentales:


Objeto

Conjunto complejo de datos y programas que poseen estructura y forman parte de una organización.

Para un objeto puede hablarse de:

Jerarquía.

En el sentido de que ciertos objetos son superiores a otros en cierto modo.

Sea una jerarquía simple o compleja, pueden distinguirse tres niveles:

Relaciones.

Las relaciones entre objetos son los enlaces (punteros) entre aquellos que forman parte de la misma organización.

Propiedades.

Las propiedades de un objeto son información acerca de una instancia o elemento, es decir diferencia objetos de la misma clase.

Todo objeto puede tener cierto número de propiedades, cada una de las cuales tendrá, a su vez, uno o varios valores más o menos estructurados (matrices, vectores, listas, etc.).

Las propiedades corresponden a las clásicas "variables". Son datos encapsulados dentro de un objeto. Los valores pueden ser de cualquier tipo (numérico, alfabético, etc.) que el sistema de programación admita.

Método.

Programa asociado a un objeto (o más bien a una clase de objetos). Los métodos actúan sobre las propiedades.

Son sinónimos de 'método' todos aquellos términos que se han aplicado tradicionalmente a los programas, como procedimiento, función, rutina, etc.

Un método no es más que una función asociada a un tipo de objeto:

Herencia: propiedades y comportamientos de un objeto por pertenecer a una clase determinada.

Mensaje, comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros.

La sintaxis del mensaje varía de acuerdo con el sistema OOP y el lenguaje de programación. En C++, por ejemplo, se escribe así:

objeto.método(parámetros)


Lenguajes páginas web.

En los últimos años y coincidiendo con el auge de Internet se han popularizado otros lenguajes muy utilizados para la creación de páginas Web.

Cuando en nuestro navegador, o cliente web, vemos una página web nos parece una sola entidad con enlaces a otras páginas, pero no es así, está compuesta por multitud de diferentes ficheros, como son las imágenes, los posibles vídeos y lo más importante: el código fuente.

El código de las páginas está escrito en un lenguaje llamado HTML, que indica básicamente donde colocar cada elemento y la forma que tendrán estos al ser colocados en la página.

En realidad el HTML no es lenguaje de programación en sentido estricto, sino, más bien, se trata de un lenguaje descriptivo que tiene como objeto dar formato al texto e imágenes que pretendemos visualizar en el navegador. HTML no permite realizar un simple cálculo matemático y mucho menos realizar operaciones con una base de datos.

Si el sitio es extenso y sus contenidos cambian rápidamente, nos interesa automatizar en la medida de lo posible todas las tareas para gestionar su explotación de la manera más óptima.

Esta automatización la podemos conseguir programando instrucciones con lenguajes del

Las páginas del cliente son muy dependientes del sistema donde se están ejecutando y esa es su principal desventaja, ya que cada navegador tiene sus propias características, incluso cada versión, y lo que puede funcionar en un navegador puede no funcionar en otro.


Práctica de programación.

Características generales de un programa:

Los programas deben ser diseñados, en lugar de lucubrados en un proceso aleatorio de crecimiento, ensayo y error.


Modularidad.

Se refiere a que las distintas tareas estén bien diferenciadas y el empleo de funciones, procedimientos o subprogramas. Evita construcciones demasiado grandes y difíciles de modificar en caso de error.

Interesa mucho que los programas sean tan modulares como se pueda, para repartir su trabajo en partes individuales que realicen tareas independientes. Esto permite comprobar por separado su correcto funcionamiento y aislar la presencia de posibles errores, de forma que sea fácil su corrección.

La modularidad también es un factor para acelerar el trabajo de desarrollo de programas. La independencia de las partes facilita que recolocadas en forma distinta y tal vez con nuevos añadidos, sirven también para construir otros programas.