Unidad 3

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, ya que el pseudocódigo o el diagrama de flujo no son comprensibles por la computadora, aunque pueda entenderlos cualquier programador. 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. El proceso de traducir un algoritmo en pseudocódigo a un lenguaje de programación se denomina codificación, y el algoritmo escrito en un lenguaje de programación se denomina código fuente.

En la realidad la computadora no entiende directamente los lenguajes de programación sino que se requiere un programa que traduzca el código fuente a otro lenguaje que sí entiende la máquina directamente, pero muy complejo para las personas; este lenguaje se conoce como lenguaje máquina y el código correspondiente código máquina. Los programas que traducen el código fuente escrito en un lenguaje de programación a código máquina se denominan traductores.

Hoy en día, la mayoría de los programadores emplean lenguajes de programación como C++, C, C#, Java, Visual Basic, XML, HTML, Perl, PHP, JavaScript..., aunque todavía se utilizan, sobre todo profesionalmente, los clásicos COBOL, FORTRAN, Pascal o el mítico BASIC.
Estos lenguajes se denominan lenguajes de alto nivel y permiten a los profesionales resolver problemas convirtiendo sus algoritmos en programas escritos en alguno de estos lenguajes de programación.

ESTRUCTURA BÁSICA DE UN PROGRAMA
Un programa de computadora es un conjunto de instrucciones –órdenes dadas a la máquina- que producirán la ejecución de una determinada tarea. En resumen es un medio para conseguir un fin.
El proceso de programación es, por consiguiente un proceso de solución de problemas y el desarrollo de un programa requiere de las siguientes fases:


 
PARTES CONSTITUTIVAS DE UN PROGRAMA

El programador debe establecer el conjunto de especificaciones que debe contener un programa: entrada, salida y algoritmos de resolución, que incluirán las técnicas para obtener las salidas a partir de las entradas.

El programador debe establecer de donde provienen las entradas al programa; que en cualquier caso, procederán de un dispositivo de entrada. El proceso de introducción de datos en la memoria de la computadora se denomina entrada de datos, operación de lectura o acción de leer.
Las salidas se deben presentar en dispositivos periféricos de salida: pantalla, impresoras, discos, etc.




INSTRUCCIONES

Un programa puede ser lineal o no lineal en base a la secuencia de ejecución de sus instrucciones.
Un programa lineal ejecuta las instrucciones sin bifurcaciones.
Un programa es no lineal cuando interrumpe la secuencia mediante instrucciones de bifurcación.

TIPOS DE INSTRUCCIONES

Las instrucciones disponibles en un lenguaje de programación dependen del tipo de lenguaje, pero las instrucciones básicas independientes de cualquier lenguaje se clasifican en:

  • Instrucciones de inicio/fin
  • Instrucciones de asignación
  • Instrucciones de lectura
  • Instrucciones de escritura
  • Instrucciones de bifurcación

En programación se debe diferenciar entre el diseño del algoritmo y su implementación en un lenguaje específico. Los lenguajes de programación tienen elementos básicos que se utilizan como bloques  constructivos, así como las reglas para las que esos elementos se combinan. Estas reglas se denominan Sintaxis del lenguaje.
Los elementos básicos constitutivos de un programa o algoritmo son:

  • Palabras reservadas
  • Identificadores (nombres de variables)
  • Caracteres especiales (coma, comillas, punto y coma, etc)
  • Constantes
  • Variables
  • Expresiones
  • Instrucciones

Además de estos elementos básicos existen otros elementos que forman parte de los programas:

  • Bucles
  • Contadores
  • Acumuladores
  • Interruptores
  • Estructuras
  • Secuencias selectivas o repetitivas

Representación de textos

La información en formato de texto se representa mediante un código en el que cada uno de los distintos símbolos del texto (tales como letras del alfabeto o signos de puntuación) se asignan a un único patrónde bits. El texto se representa como una cadena larga de bits en la cual los sucesivos patrones representan los sucesivos símbolos del texto original.
En resumen, se puede representar cualquier información escrita (texto) mediante caracteres. Los caracteres que se utilizan en computación suelen agruparse en cinco categorías:
1.    Caracteres alfabéticos (letras mayúsculas y minúsculas, en una primera versión del abecedario inglés).

A, B, C, D, E, ... X, Y, Z, a, b, c, ... , X, Y, Z

2.    Caracteres numéricos (dígitos del sistema de numeración).

0, 1, 2, 3, 4, 5, 6, 7, 8, 9 sistema decimal

3.    Caracteres especiales (símbolos ortográficos y matemáticos no incluidos en los grupos anteriores).

{ } Ñ ñ ! ? & > # ç ...

4.    Caracteres geométricos y gráficos (símbolos o módulos con los cuales se pueden representar cuadros, figuras geométricas, iconos, etc.

5.    Caracteres de control (representan órdenes de control como el carácter para pasar a la siguiente

línea [NL] o para ir al comienzo de una línea [RC, retorno de carro, «carriage return, CR»]
emitir un pitido en el terminal [BEL], etc.).
Al introducir un texto en una computadora, a través de un periférico, los caracteres se codifican según un código de entrada/salida de modo que a cada carácter se le asocia una determinada combinación de n bits.

Los códigos más utilizados en la actualidad son: EBCDIC, ASCII y Unicode.
• Código EBCDIC (Extended Binary Coded Decimal Inter Change Code).
Este código utiliza n = 8 bits de forma que se puede codificar hasta m = 28 = 256 símbolos diferentes. Éste fue el primer código utilizado para computadoras, aceptado en principio por IBM.

• Código ASCII (American Standard Code for Information Interchange).
El código ASCII básico utiliza 7 bits y permite representar 128 caracteres (letras mayúsculas
y minúsculas del alfabeto inglés, símbolos de puntuación, dígitos 0 a 9 y ciertos controles de información tales como retorno de carro, salto de línea, tabulaciones, etc.). Este código es el más utilizado en computadoras, aunque el ASCII ampliado con 8 bits permite llegar a 28 (256) caracteres distintos, entre ellos ya símbolos y caracteres especiales de otros idiomas como el español.

• Código Unicode
Aunque ASCII ha sido y es dominante en los caracteres se leen como referencia, hoy día se
requiere de la necesidad de representación de la información en muchas otras lenguas, como el portugués, español, chino, el japonés, el árabe, etc. Este código utiliza un patrón único de 16 bits para representar cada símbolo, que permite 216 bits o sea hasta 65.536 patrones de bits (símbolos) diferentes.
Desde el punto de vista de unidad de almacenamiento de caracteres, se utiliza el archivo (fichero).
Un archivo consta de una secuencia de símbolos de una determinada longitud codificados utilizandoASCII o Unicode y que se denomina archivo de texto. Es importante diferenciar entre archivos de texto simples que son manipulados por los programas de utilidad denominados editores de texto y los archivos de texto más elaborados que se producen por los procesadores de texto, tipo Microsoft Word.
Ambos constan de caracteres de texto, pero mientras el obtenido con el editor de texto, es un archivo de texto puro que codifica carácter a carácter, el archivo de texto producido por un procesador de textos contiene números, códigos que representan cambios de formato, de tipos de fuentes de letra y otros, e incluso pueden utilizar códigos propietarios distintos de ASCII o Unicode.

Representación de valores númericos

El almacenamiento de información como caracteres codificados es ineficiente cuando la información se registra como numérica pura. Veamos esta situación con la codificación del número 65; si se almacena como caracteres ASCII utilizando un byte por símbolo, se necesita un total de 16 bits, de modo que elnúmero mayor que se podía almacenar en 16 bits (dos bytes) sería 99. Sin embargo, si utilizamos notación binaria para almacenar enteros, el rango puede ir de 0 a 65.535 (216 – 1) para números de 16 bits.
Por consiguiente, la notación binaria (o variantes de ellas) es la más utilizada para el almacenamiento de datos numéricos codificados.
La solución que se adopta para la representación de datos numéricos es la siguiente: al introducir un número en la computadora se codifica y se almacena como un texto o cadena de caracteres, pero dentrodel programa a cada dato se le envía un tipo de dato específico y es tarea del programador asociar cada dato al tipo adecuado correspondiente a las tareas y operaciones que se vayan a realizar con dicho dato.
El método práctico realizado por la computadora es que una vez definidos los datos numéricos de un programa, una rutina (función interna) de la biblioteca del compilador (traductor) del lenguaje de programación se encarga de transformar la cadena de caracteres que representa el número en su notación binaria.

Existen dos formas de representar los datos numéricos: números enteros o números reales.

Representación de enteros
Los datos de tipo entero se representan en el interior de la computadora en notación binaria. La memoria ocupada por los tipos enteros depende del sistema, pero normalmente son dos, bytes (en las versiones de MS-DOS y versiones antiguas de Windows y cuatro bytes en los sistemas de 32 bits como Windows o Linux). Por ejemplo, un entero almacenado en 2 bytes (16 bits):
1000 1110 0101 1011

Representación de reales

Los números reales son aquellos que contienen una parte decimal como 2,6 y 3,14152. Los reales se representan en notación científica o en coma flotante; por esta razón en los lenguajes de programación.
Existen dos formas de representar los números reales. La primera se utiliza con la notación del punto decimal.
Ejemplos
12.35 99901.32 0.00025 9.0
La segunda forma para representar números en coma flotante en la notación científica o exponencial,conocida también como notación E. Esta notación es muy útil para representar números muy grandes o muy pequeños.
Ejemplos
2.52 e + 8
8.34 E – 4 equivale a 8.34/104 = 0.000834
7E5
–18.35e15
5.95E25
9.11e – 31 equivale a 0.000000000000000000000000000000911

Representación de caracteres

Un documento de texto se escribe utilizando un conjunto de caracteres adecuado al tipo de documento.
En los lenguajes de programación se utilizan, principalmente, dos códigos de caracteres. El más comúnes ASCII (American Standard Code for Information Interchange) y algunos lenguajes, tal como Java, utilizan Unicode (www.unicode.org). Ambos códigos se basan en la asignación de un código numérico a cada uno de los tipos de caracteres del código.
El código ASCII básico que utiliza 7 bits (128 caracteres distintos) y el ASCII ampliado a 8 bits (256 caracteres distintos) son los códigos más utilizados. Así se pueden representar caracteres tales como 'A','B', 'c', '$', '4', '5', etc.