Bioinform atica -...

28
Bioinform´atica Parte I de Inform´ atica Aplicada a la Biolog´ ıa ´ Indice 3. Introducci´ on a la programaci´on: Algoritmos y diagramas de flujo 23 3.1. Diagramas de flujo y pseudo-c´ odigo ......................... 26 3.1.1. Diagramas de flujo .............................. 26 3.1.2. Pseudo-c´odigo ................................ 29 3.2. Lenguajes de programaci´ on ............................. 42 3.2.1. Lenguajes de Alto-Bajo nivel ........................ 42 3.2.2. Lenguajes Interpretados o Compilados ................... 43 3.2.3. Lenguajes espec´ ıficos de un Objetivo .................... 43 3.2.4. Sobre algunos lenguajes de programaci´ on .................. 43 1

Transcript of Bioinform atica -...

Page 1: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Bioinformatica

Parte I de Informatica Aplicada a la Biologıa

Indice

3. Introduccion a la programacion: Algoritmos y diagramas de flujo 233.1. Diagramas de flujo y pseudo-codigo . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.1.1. Diagramas de flujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.1.2. Pseudo-codigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.2. Lenguajes de programacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423.2.1. Lenguajes de Alto-Bajo nivel . . . . . . . . . . . . . . . . . . . . . . . . 423.2.2. Lenguajes Interpretados o Compilados . . . . . . . . . . . . . . . . . . . 433.2.3. Lenguajes especıficos de un Objetivo . . . . . . . . . . . . . . . . . . . . 433.2.4. Sobre algunos lenguajes de programacion . . . . . . . . . . . . . . . . . . 43

1

Page 2: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 2

Page 3: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

3. Introduccion a la programacion: Algoritmos y diagra-

mas de flujo

Hoy en dıa, las computadoras, ya sean de proposito general o especıfico, estan por todaspartes, telefonos, electrodomesticos, aviones, etc; y realizan tareas de todo tipo, desde reprodu-cir vıdeo hasta controlar trayectorias de disparo de tanques, todas esas maquinas de computorequieren, como cualquier maquina, que se enciendan y sean controladas para realizar una tarea(o problema) especıfica. La diferencia entre una computadora y un coche (sin computadora deabordo) es que al coche lo controla una persona y a la computadora lo que denominamos unprograma, tambien llamado software. Esos programas tienen que ser creados previamente, yahı es donde se usa la programacion. Definimos programacion como el proceso de solucion deproblemas, preparados para la implementacion en el ordenador.

En este proceso distinguimos cinco pasos:

1. Un analisis detallado del problema y de los resultados que queramos obtener.

2. Planificar la resolucion del problema, buscar tacticas que conduzcan a su solucion,dividiendolo, si es necesario en una secuencia de etapas mas simples. Esta fase se lleva acabo en un papel, y definiremos los algoritmos que se utilizaran.

3. Codificar esta informacion en un lenguaje informatico concreto.

4. Compilar y ejecutar , una vez traducido a lenguaje maquina, ejecutar el programa.

5. Revisar y corregir errores. Se repetiran los pasos anteriores tantas veces como seanecesario.

Todo programa comienza con una idea, algo que se quiere hacer, generalmente ese algoresulta como solucion a un problema especıfico. La solucion de un problema requiere el disenode un algoritmo. Definimos algoritmo como un metodo para resolver un problema medianteuna serie de pasos precisos, definidos y finitos en el siguiente sentido:

Precisos: hay un orden para cada paso y cada paso es claro, unico.

Definidos: si se hace dos veces con los mismos datos se obtiene igual resultado.

Finitos: tiene un numero fijo de pasos.

Un algoritmo no tiene que ser necesariamente para resolver un problema informatico omatematico. Atendiendo a su definicion, ejemplos de algoritmos pueden ser

Una receta de cocina,

Un manual de implementacion de un aparato electronico, o

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 23

Page 4: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

Sacar dinero del cajero.

Ejemplo de problema: Un estudiante quiere sacar 100 euros de un cajero, ¿Que debe hacer elestudiante?

Para resolver este problema proponemos el siguiente algoritmo:

1. Ir al cajero mas cercano.

2. Introducir la tarjeta.

3. Teclear la clave secreta.

Si es correcta:

4.1 Seleccionar 100 euros.

4.1.1 Si quiere recibo, solicitarlo y recogerlo.

4.1.2 Si no, no solicitarlo.

Si no es correcta, volver a la etapa anterior.

4. Recoger el dinero y la tarjeta.

Nuestra intencion es resolver problemas con el ordenador. Un programa de ordenador es unasucesion de ordenes, que describen un algoritmo, escritas de forma que puedan ser entendidaspor el ordenador.

En un algoritmo (y por tanto en un programa) se distinguen las siguientes acciones:

Entrada: es la informacion de partida que necesita el algoritmo para arrancar.

Proceso: es el conjunto de todas las operaciones a resolver.

Salida: son los resultados obtenidos.

Existen dos maneras de representar los algoritmos: mediante Diagramas de flujo y pseudo-codigo.

Un diagrama de flujo es una representacion grafica de un algoritmo o proceso. Estosdiagramas utilizan sımbolos con significados bien definidos que representan los pasos delalgoritmo, y representan el flujo de ejecucion mediante flechas que conectan los puntosde inicio y de fin de proceso.

El pseudo-codigo (o falso lenguaje) es utilizado por programadores para describir al-goritmos en un lenguaje humano simplificado que no es dependiente de ningun lenguajede programacion. Por este motivo puede ser implementado en cualquier lenguaje porcualquier programador que utilice el pseudo-codigo.

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 24

Page 5: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

Antes de entrar en detalles de cada uno de ellos, es necesario dar una estructura general alos problemas que vamos a afrontar. En la resolucion de problemas se pueden considerar treselementos principales:

1. Declaracion de variables : Contienen un valor que cambia. Las variables en un pro-grama son como cajas de distintos tamanos donde podemos guardar distintos tipos deobjetos o valores, y cambiar su contenido cuando queramos. En esencia, una variablees una zona o posicion de memoria en la computadora donde se almacena informacion.Los valores basicos que contienen las variables en programacion son Numeros y letras. Seidentifican con una letra o varias:

a, b, num, cosa, x, y, x1, x2, . . .

Podemos distinguir entre dos tipos de variables:

Numeros:

• Enteros: -1,0,1,2,...

• Reales: -1.2, 2., 45.34,... Vemos que tienen parte decimal representada por elpunto (.)

Caracteres: Se representan entre comillas (′′ ′′). Por ejemplo:

′′p′′, ′′hola′′, ′′ACTGGTAATCGGG′′, . . .

2. Ordenes de asignacion: Para la declaracion las variables se usan letras y numeros (tam-bien se puede usar el guioin bajo ):

a = −2,7, num = sen(a), cosa suya =′′ CTGATGC ′′, x1 = 2 + 3 ∗ x/y

Observar que podemos operar con ellas si estan definidas previamente.

Mencion especial requiere la notacion

x = x + 1, a = a + 2, x = 3 ∗ x− 1, ....

Ejemplo:

Asignamos a = 3: la variable a contiene el valor numerico 3.

Asignamos a = a + 2: Primero realizamos la operacion a + 2 = 3 + 2 = 5 y despuesasignamos a la variable a el valor 5.

El valor de a finalmente es 5.

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 25

Page 6: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

3. Estructuras de control: la implementacion de las relaciones entre las variables (flujos)(estas estructuras de control son las que representaremos, bien por diagramas de flujo,bien por ordenes en lenguaje de pseudo-codigo). Dichas estructuras dicen el orden en elque se realizan los distintos pasos del algoritmo.

Las estructuras de control son de tres tipos:

Secuenciales: siguen una serie unıvoca de ordenes.

Selectivas o condicionales: seleccionan distintas posibilidades.

Repetitivas: repiten tareas similares de manera cıclica.

3.1. Diagramas de flujo y pseudo-codigo

Ya tenemos definida la estructura general de un algoritmo. A continuacion vamos a describirlas representaciones de los algoritmos por diagramas de flujo y pseudo-codigo.

3.1.1. Diagramas de flujo

Como se dijo anteriormente, es una representacion grafica de un algoritmo, por lo tantovamos a introducir la simbologıa y su significado.

Ovalo: Inicio y termino (Abre y/o cierra el diagrama).

Rectangulo: Actividad (Representa la ejecucion de una o mas actividades o procedimien-tos).

Rombo: Decision (Formula una pregunta o cuestion).

Paralelogramo: Entrada de datos por teclado / Salida de datos por pantalla.

Hexagono: para bucles.

Cırculo: Conector (Continuacion del flujo de ejecucion).

−→: Lıneas de conexion y direccion del flujo.

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 26

Page 7: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

Veamos como podemos representar la asignacion de variables:

Veamos ejemplos de las diferentes estructuras de control:

Estructura secuencial:

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 27

Page 8: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

Estructura condicional:

Estructura repetitiva:

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 28

Page 9: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

Diagrama flujo: Ejemplo del cajero

3.1.2. Pseudo-codigo

Como se dijo anteriormente, es utilizado por programadores para describir algoritmos en unlenguaje humano simplificado que no es dependiente de ningun lenguaje de programacion.

En un pseudocodigo, y tambien en un programa, se pueden crear tantas variables comoqueramos. Ejemplos:

A = 50; Variable tipo numerica A cuyo valor es 50.

Ciudad = “Asuncion”; Variable alfanumerica o de tipo caracter Ciudad, cuyo valor es“Asuncion”

X = C + B; Variable numerica X cuyo valor es la suma de los valores de las variablesnumericas C y B. (Nota: C y B deben tener algun valor).

Para asignar un valor a una variable se utilizara el sımbolo = que en este contextosignifica “es reemplazado por”. De forma general tendremos que:

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 29

Page 10: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

Nombre variable = expresion;

El valor de Nombre variable se sustituye por el valor de expresion. Ejemplo:

C = 13;B = 25;X = C + B; (ahora X contendra el valor 13 + 25 = 38)

Existe otra forma de asignarle un valor a una variable de forma directa desde teclado:

Leer Nombre variable;

Esta instruccion pide al usuario un valor que sera asignado a la variable Nombre variable,es decir, en Nombre variable se almacena el valor ingresado por el usuario.

Operadores de relacion : Los operadores relacionales se utilizan para formar expresionesque al ser evaluadas producen un valor de tipo logico: verdadero o falso.

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 30

Page 11: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

Operadores aritmeticos:

A continuacion describimos la manera de expresar en pseudo-codigo las diferentes estructu-ras de control:

Estructuras de secuenciales:

Instruccion 1;

Instruccion 2;

. . . . . . . . . . . .

Instruccion n;

Estructura condicional simple:

Si (condicion)entonces

Instrucciones 1;

si no

Instrucciones 2;

fin si;

El resultado de evaluar condicion puede ser verdadero o falso: en el caso de que seaverdadero, se ejecutara el bloque de instrucciones 1. Si el resultado de evaluar condicion esfalso se ejecutaran el bloque de instrucciones 2.

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 31

Page 12: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

Ejemplo:

Si (A == 5)entonces

Escribe ′′A es 5′′;

si no

Escribe ′′A no es igual a 5′′;

fin si;

Estructura condicional multiple:Si (condicion 1) entonces

Instrucciones 1;

si no, si (condicion 2)

Instrucciones 2;

si no

Instrucciones 3;

fin si;

Se evaluara primero condicion 1, si el resultado es verdadero, se ejecutara el bloque deinstrucciones 1. Si el resultado de evaluar condicion 1 es falso, se evaluara condicion 2 , siel resultado es verdadero, se ejecutara el bloque de instrucciones 2. Si el resultado de evaluarcondicion 2 es falso se ejecutara el bloque de instrucciones 3.

Estructuras de repeticion mientras : El formato de la estructura de repeticion mien-tras es

mientras (condicion)

Instruccion 1;

Instruccion 2;

. . . . . . . . . . . .

Instruccion n;

fin mientras;

El resultado de evaluar condicion puede ser verdadero o falso:

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 32

Page 13: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

Mientras sea verdadero, se ejecutaran: instruccion 1, instruccion 2, . . . , instruccion n. Estasinstrucciones dejaran de ejecutarse cuando condicion sea falso.

Ejemplo:

Leer contrasena;

mientras (contrasena 6= ”joshua”)

Escribe ”La contrasena es incorrecta”;

Leer contrasena;

fin mientras;

Escribe ”Ha tecleado la contrasena correcta”;

Observacion: El bucle se repite mientras que (contrasena 6= ”joshua”) sea verdadero.

Estructuras de repeticion para (no. de veces pre-determinado): El formato de laestructura de repeticion para es

para (numero de veces)

Instruccion 1;

Instruccion 2;

. . . . . . . . . . . .

Instruccion n;

fin para;

Ejemplo: Dado un numero entero n, calcular

n∑k=0

(1

2

)k

= 1 +1

2+ . . . +

1

2n.

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 33

Page 14: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

Leer n;suma = 1para k = 1, 2, ..., n;

suma = suma + 1/2k;fin para;Escribe ”La suma vale”, suma;

Leer n;suma = 1;k = 1;mientras k ≤ n;

suma = suma + 1/2k;k = k +1;

fin mientras;Escribe ”La suma vale”, suma;

Salida de resultados: Los resultados de nuestros algoritmos los vamos a mostrar al usua-rio a traves de la instruccion Escribe, que tiene la siguiente forma general:

Escribe argumento 1, argumento 2, argumento 3, ... , argumento n;

Donde los argumentos pueden ser cadenas de caracteres entrecomilladas o variables:

Si son cadenas de caracteres entrecomillados se imprime literalmente lo que esta entrecomillas

Si son variables se imprime el contenido de dicha variable (no el nombre)

Ejemplo:sueldo = 1000;trabajador = “Martınez”;Escribe “el sueldo de ”,trabajador , “es ”, sueldo , “Euros.” ;La salida es: el sueldo de Martınez es 1000 Euros.

A continuacion vamos a dar diferentes ejemplos de problemas y algoritmos de resolucionescritos en diagramas de flujo y pseudo-codigo:

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 34

Page 15: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

Ejemplo 1: Leer dos numeros del teclado y escribir la media aritmetica:

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 35

Page 16: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

Ejemplo 2: Leer un numero del teclado y escribir su valor absoluto:

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 36

Page 17: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

Ejemplo 3: Dadas las componentes de un vector en (x, y) ∈ R2, escribir el numero delcuadrante en que esta (x, y):

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 37

Page 18: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

Ejemplo 4: Desarrolle un algoritmo que permita leer dos valores distintos A y B por elteclado, determinar cual de los dos es el mayor y escribirlo:

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 38

Page 19: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

Ejemplo 5: Desarrolle un algoritmo que permita leer dos numeros A y B por el teclado, yordenarlos de mayor a menor:

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 39

Page 20: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

Ejemplo 6: Calcular la nota media de una clase de 35 alumnos:

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 40

Page 21: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

Ejemplo 7: Calcular el factorial de un numero N ≥ 0 (entero):N ! = 1 ∗ 2 ∗ 3 ∗ ..... ∗N :

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 41

Page 22: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

3.2. Lenguajes de programacion

Una vez hemos realizado el analisis y buscado la tactica para resolver un problema, ¿comohacemos lo anterior y que nos entienda el computador? Es decir, ¿como codificamos las ordenesque queremos transmitirle al computador para que lo entienda? Para ello utilizamos lenguajesde programacion.

Un lenguaje de programacion es un conjunto de reglas, notaciones, sımbolos y/o caracte-res que permiten a un programador poder expresar el procesamiento de datos y sus estructurasen la computadora. Cada lenguaje posee sus propia sintaxis. Tambien se puede decir que un pro-grama es un conjunto de ordenes o instrucciones que resuelven un problema especıfico basadoen un Lenguaje de Programacion.

Estos lenguajes tienen unas caracterısticas comunes:

Constituyen sistemas de palabras-ordenes (lengua o idioma), ya establecidos.

Son comprensibles tanto por el programador como por la maquina.

Permiten desarrollar programas.

Existen distintas clasificaciones de lenguajes de programacion:

3.2.1. Lenguajes de Alto-Bajo nivel

El nivel indica la proximidad a nuestro lenguaje. A mayor nivel, mas cercano esta a nuestrolenguaje. Por el contrario, a menor nivel, mas cercano esta al lenguaje de la maquina.

Segun la evolucion de los ordenadores, los lenguajes de programacion estan divididos en trescategorıas:

lenguajes maquina o de primera generacion: El lenguaje de mas bajo nivel o len-guaje maquina es el que la maquina entiende, y esta basado en un sistema de 0 y 1. Estandefinidos por el diseno de software de manera que los lenguajes maquinas de sistemasoperativos diferentes son diferentes.

lenguajes ensamblador o de segunda generacion: se desarrollaron usando abrevia-ciones de palabras en ingles para representar elementos comunes del codigo maquina. Senecesita un editor de texto (para crear el archivo del codigo) y un ensamblador (quetraduce las lıneas de codigo a codigo maquina). Aunque mas “comodo”de usar que ellenguaje maquina, tambien es difıcil luego su uso esta reservado a determinadas tareasdonde la velocidad y la eficiencia sean fundamentales, como los juegos de accion.

lenguajes de alto nivel o de tercera (o cuarta) generacion: de sintaxis mas pa-recida a nuestros idiomas, usan palabras, operadores matematicos y sımbolos. Para queel ordenador los entienda, deben ser traducidos a lenguaje maquina. La ventaja frente alenguajes mas basicos es que son mas transportables entre diferentes sistemas operati-vos. Ejemplos son: BASIC, PASCAL, FORTRAN, C, C++ (aunque este es intermedio),...

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 42

Page 23: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

3.2.2. Lenguajes Interpretados o Compilados

Los lenguajes deben traducirse para que sean interpretables por el ordenador. Esta traduc-cion puede hacerse mediante:

Los lenguajes interpretados, se encargan de realizar la traduccion instruccion a ins-truccion a la vez que se ejecuta el programa (MATLAB)

Los lenguajes compilados traducen el programa entero y luego lo montan generandoun programa ejecutable (FORTRAN, C,C++)

3.2.3. Lenguajes especıficos de un Objetivo

Los programas pueden clasificarse por el fin para el que fueron creados:

BASIC, , PYTHON y SIMULA: aprendizaje de programacion

ADA, CPL, C y C++: programacion de sistemas

COBOL, RPG, Natural: gestion de empresas, procesamiento de datos

PASCAL, TURBO PASCAL, FORTRAN, APL: para aplicaciones cientıficas

CLIPPER, ACCESS, PERL, SQL, R: bases de datos

Visual BASIC, Visual C: programacion en Windows

HTLM, JAVA, JAVA SCRIPT, PHP: Internet (paginas Web)

Lingo: programas multimedia

LISP y PROLOG: para aplicaciones de inteligencia artificial

PL/I: para aplicaciones de propositos generales

3.2.4. Sobre algunos lenguajes de programacion

BASIC: (Beginners All-purpose Symbolic Instruction Code) Es un lenguaje de progra-macion que se creo con fines pedagogicos en 1964. Era el lenguaje que utilizaban lasmicrocomputadoras de los anos 80. Fue inventado para permitir a los estudiantes escribirprogramas usando terminales de computador de tiempo compartido. Actualmente siguesiendo muy conocido y tienen muchısimos dialectos muy diferentes al original. El BASICes un lenguaje de programacion muy amplio, con una sintaxis facil, estructura sencilla yun buen conjunto de operadores. No es un lenguaje especıfico, es polivalente, potente, seaprende rapidamente, en poco tiempo cualquier usuario es capaz de utilizar casi la tota-lidad de su codigo. El BASIC se baso otros dos lenguajes de programacion el FORTRANII y el Algol 60, haciendolo apropiado para el uso del computador a tiempo compartidoy para la aritmetica de matrices.

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 43

Page 24: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

C: Conocido por desarrollar software de sistemas y aplicaciones. El lenguaje de programa-cion C esta disponible multitud de plataformas diferentes, mucho mas que cualquier otrolenguaje. En principio fue creado para fomentar la programacion independientemente dela maquina. Es un lenguaje simple, flexible porque permite programar con multitud deestilos, impide programar operaciones sin sentido, tiene un reducido conjunto de palabrasclave, tiene acceso a memoria de bajo nivel, permite que los datos relacionados se combi-nen y se manipulen como un todo, etc. Fue una evolucion del anterior lenguaje, el lenguajeB, que estaba basado en el BCPL (Basic Combines Programming Language o Lengua-je de Programacion Basica Combinada). Su diseno incluyo una sintaxis simplificada, laaritmetica de direcciones de memoria (permite al programador manipular bits, bytes ydirecciones de memoria) y el concepto de apuntador. Logrados los objetivos anteriores, Cse convirtio en el lenguaje preferido de los programadores profesionales (hasta la llegadade C++).

C++: Creado en los anos 80, el C++ es un lenguaje orientado a objetos (intenta simularel mundo real a traves del significado de objetos que contiene caracterısticas y funciones)al que se le anadieron caracterısticas y cualidades de las que carecıa el lenguaje C. Comosucedıa con el C depende mucho del hardware, tiene una gran potencia en la programaciona bajo nivel, y se le anadieron elementos que nos permiten programar a alto nivel. El C++es uno de los lenguajes mas potentes porque nos permite programar a alto y a bajo nivel(algo que ha hecho que muchos de los programadores de C se hayan pasado a C++.),pero a su vez es difıcil de aprender porque es necesario hacerlo casi todo manualmente.El nombre fue propuesto por Rick Masciatti, al utilizarse C++ fuera de los laboratoriosdonde se creo. Con el nombre de C++ que quiso dar a entender que el C++ es unaextension del lenguaje C.

COBOL: (COmmon Business Oriented Language = lenguaje orientado a negocios comu-nes). Se invento en los anos 60 y nacio con el objetivo de ser un lenguaje de programacionversatil, que pudiese ser usado en cualquier computador, ya que, en aquellos entonces, eramuy difıcil que el software creado para una maquina concreta sirviese para otra diferente(porque la mayorıa de estas computadoras eran incompatibles entre sı). Se querıa ademasconseguir con este nuevo lenguaje de programacion que estuviese destinado a los negocios,concretamente a lo que conocemos como informatica de gestion. Es considerado un len-guaje de facil aprendizaje. Los programas deben contener cuatro secciones: identificacion,entorno, datos y procedimientos.

CPL: (Combined Programming Language). Fue un lenguaje de programacion desarrolla-do conjuntamente entre el Laboratorio de Matematica en la Universidad de Cambridgey la Unidad Computacion de la Universidad de Londres durante la decada de 1960. Estelenguaje era grande, moderadamente elegante y complejo, por lo que resulto mucho paralas pequenas computadoras y las inmaduras tecnologıas de compilacion de la epoca. Com-piladores propiamente funcionales fueron escritos probablemente alrededor de la decadadel 70, pero el lenguaje nunca fue muy popular y parecio haber desaparecido sin rastrosen la misma decada. Un lenguaje posterior basado en CPL, llamado BCPL (por Basic

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 44

Page 25: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

CPL, aunque originalmente Bootstrap CPL) fue un lenguaje mucho mas simple disenadoprincipalmente como un lenguaje para programacion de sistemas, particularmente paraescribir compiladores. BCPL influencio, vıa el lenguaje B, al lenguaje de programacionC.

DELPHI: Se creo con el proposito de agilizar la creacion de software basandolo en unaprogramacion visual. En el Delphi se utiliza una version mas actual del Pascal conocidacomo Object Pascal como lenguaje de programacion. Es un lenguaje muy versatil quese usa para casi cualquier proyecto como por ejemplo servicios del sistema operativo,establecer comunicacion entre un servidor web y un programa, aplicaciones de consola,conectividad con bases de datos, para realizar aplicaciones visuales, etc. Este lenguajeproduce aplicaciones en codigo maquina, por lo que la computadora las interpreta inme-diatamente y no precisa de un lenguaje interprete como es necesario en otros lenguajesde programacion. En sus diferentes variantes, permite producir archivos ejecutables paraWindows, Linux y la plataforma .NET.

FORTRAN: (FORmula TRANslator) Es un lenguaje de programacion para el desarrollode aplicaciones matematicas y cientıficas (en particular, el analisis numerico). Fue elprimer lenguaje de programacion de alto nivel, creado en 1950 por IBM. Estos lenguajes dealto nivel tienen entre otras las ventajas que pueden utilizarse en cualquier computadoray son mas afines al lenguaje humano

JAVA: Es el lenguaje mas usado del mundo. Fue creado en 1990 y su codigo es muysimilar a C y C++. La diferencia entre el Java y los lenguajes C y C++ es que el Javaes un lenguaje de programacion plenamente orientado a objetos.

Esta orientado a objetos por lo que se caracteriza por permitir la reutilizacion de codigo.Se utiliza para el desarrollo de aplicaciones web y de escritorio, y tambien java ha tenidoun aumento muy significativo al llegar android ya que java es el lenguaje que mas seusa para crear aplicaciones en este sistema operativo. Java es famoso por las applets,pequenas aplicaciones graficas que se insertan dentro de una pagina web (los appletstienen un comportamiento inteligente, pudiendo reaccionar cuando un visitante entraen una pagina web cambiando de forma). Todo esto ha posibilitado que el Java sea unlenguaje interactivo entre el usuario y la aplicacion. Uno de sus puntos fuertes es sucapacidad multiplataforma, que permite que el mismo codigo seudo compilado se ejecuteen cualquier sistema (cualquier sistema con soporte Java, claro).

JAVA SCRIPT: Es un lenguaje de programacion interpretado, lo que significa que nonecesita ser compilado. Proviene del Java y se utiliza principalmente para la creacionde paginas web. Es una mezcla entre el Java y el HTML. Pero debemos saber que elJavaScript es un lenguaje muy diferente del Java. El JavaScript aunque es un lenguaje deprogramacion orientado a objetos no tiene herencia, al contrario del Java que si la tiene,sino que el JavaScript es mas bien un lenguaje orientado a eventos. Otra diferencia entreambos lenguajes es que mientras con el Java podemos crear aplicaciones autonomas comoson los applets, el JavaScript es un lenguaje que se incorpora dentro de la pagina web,

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 45

Page 26: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

formando parte del codigo HTML sin el que no puede existir. Estos dos lenguajes tienenen comun gran parte de su sintaxis, su estructura, establecen jerarquıa de objetos parapoder definir sus propiedades, etc. Tienen muchos elementos comunes con los lenguajes Cy C++. Podemos incluir el codigo del JavaScript en cualquier pagina web o documentoHTML, desde el punto de vista cliente como servidor en documentos PHP, Asp, etc. Estecodigo va incluido dentro de las etiquetas de HTML, de esta manera:

〈SCRIPT 〉〈/SCRIPT 〉

LISP: (LISt Processing) Un lenguaje de programacion para ordenadores orientado a lageneracion de listas. El LISP es un lenguaje interpretado, en el que cada expresion esuna lista de llamadas a funciones. Fue desarrollado en 1959-1960 para manipular listas dedatos o sımbolos, y constituyo un cambio radical con respecto a los lenguajes procedurales(FORTRAN, ALGOL) que se desarrollaban por entonces. Este lenguaje se sigue utilizandocon frecuencia en investigacion y en cırculos academicos, y fue considerado durante muchotiempo el lenguaje modelo para la investigacion de la inteligencia artificial (IA), aunqueel Prolog ha ganado terreno durante los ultimos anos. Paquetes de software libre comoMAXIMA estan basados en LISP.

PASCAL: Es el lenguaje mas sencillo que posibilita el acceso a la informatica teorica:descomposicion modular, recursividad, punteros, etc. Historia: El lenguaje Pascal aparecepor primera vez en 1971, disenado por el profesor Niklaus Wirth con el objetivo de facilitarel aprendizaje de la programacion a sus alumnos. Pascal fue muy utilizado en la decadade los 80 y los 90, y es el precursor de lenguajes como Delphi.

TURBO PASCAL: (en honor a Blaise Pascal (1623-1662), brillante cientıfico y ma-tematico frances entre cuyos logros se encuentra la primera maquina calculadora mecani-ca en el mundo) Es un sistema de desarrollo de software que incluye un compilador yun entorno de desarrollo integrado (IDE) para el lenguaje de programacion Pascal. Sediseno a principios de los 70 ensenar programacion estructurada. Fue lanzado en 1983para MS-DOS, CP/M, CP/M-86 y, posteriormente, para Microsoft Windows, fue durantemucho tiempo la version mas extendida del lenguaje Pascal. Tambien hubo una versionde corta vida para Apple Macintosh.

PERL: Disenado por Larry Wall en 1987. Perl toma caracterısticas del lenguaje C, dellenguaje interpretado bourne shell, AWK, sed, Lisp y, en un grado inferior, de muchosotros lenguajes de programacion. Estructuralmente, Perl esta basado en un estilo de blo-ques como los del C o AWK, y fue ampliamente adoptado por su destreza en el procesadode texto y no tener ninguna de las limitaciones de los otros lenguajes de script. La ultimaversion en uso es Perl 5 (aunque Perl 6 esta en fase de experimentacion). Se han anadidocaracterısticas importantes y algunas construcciones esenciales, incluyendo soporte Uni-code, Hilos (threads), un soporte importante para la programacion orientada a objetos yotras mejoras.

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 46

Page 27: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

PHP: (Personal Home Page tools) Es un lenguaje que une interpretacion y compilacionpara intentar ofrecer a los programadores la union entre rendimiento y flexibilidad. Ad-quirio relativo exito gracias a que otras personas pidieron a Rasmus (su creador) queles permitiese utilizar sus programas en sus propias paginas. PHP compila una serie deinstrucciones (llamadas opcodes) para tu codigo siempre que estas son accedidas. Estasinstrucciones son entonces ejecutadas una por una hasta que el script termina. Esto esdiferente a la compilacion de lenguajes como C++ donde el codigo es compilado a uncodigo ejecutable que es despues ejecutado. Php es recompilado cada vez que se solicitaun script. Una ventaja importante de interpretar el codigo es que toda la memoria usadapor tu codigo es manejada por PHP, y el lenguaje automaticamente vacıa esta memoriacuando el script finaliza. Esto significa que las conexiones a la base de datos las hara PHPpor ti.

PYTHON: (proviene de los humoristas britanicos Monty Python que tanto le gustabana Guido van Rossum, su creador) Es un lenguaje de programacion moderno, orientado aobjetos, muy sencillo de usar a la vez potente y de codigo abierto. El Python nos permiteseparar el programa en modulos. Tiene una gran variedad de modulos estandar que sepueden utilizar para programar, o incluso como una base para aprender a programar enPython. El Python es un lenguaje interpretado lo que ahorra muchısimo tiempo en lacreacion de programas puesto que no es preciso compilar su codigo. El interprete queusa el Python se puede utilizar de modo interactivo lo que nos permite experimentar coneste lenguaje mientras programamos. Permite que podamos programar en varios estilos:programacion orientada a objetos, programacion estructurada, programacion funcionaly programacion orientada a aspectos, lo que se conoce como lenguaje de programacionmultiparadigma.

R: R es un lenguaje de programacion especialmente orientado al analisis estadıstico ya la representacion grafica de los resultados obtenidos. Es un proyecto GNU. Por lotanto, los usuarios son libres de modificarlo y extenderlo. Se trata de un lenguaje basadoen comandos, en lugar de pinchar y arrastrar iconos o menus con el raton se escribencomandos o instrucciones que son ejecutados. Una sucesion de instrucciones o comandosde R que implementa un flujo de trabajo para realizar una tarea se denomina script oguion R. Existe una amplia variedad de entornos de desarrollo para R que facilitan escribirscripts de R tales como R commander, RKWard y RStudio.

SIMULA: (SIMUlarian LAnguage) Es un lenguaje de programacion orientada a objetos(OOP). Fue el primero de los lenguajes orientado a objetos, desarrollado en mayo de1967. Varios anos despues de su desarrollo, casi todos los lenguajes modernos comenzarona utilizar sus principios de orientacion a objetos. Ası fue como se popularizaron terminoscomo clases, objetos, instancias, herencia, polimorfismo, etc. Hoy en dıa, los creadores deSimula han desarrollado un nuevo lenguaje de programacion, llamado Beta, que generalizatodas las construcciones del lenguaje en una unica idea denominada patron.

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 47

Page 28: Bioinform atica - personales.us.espersonales.us.es/angeles/MiJoomla/images/IAB16_17/ApuntesInfoBio... · Inform atica Aplicada a la Biolog a Curso 2016/17 ... Un manual de implementaci

Informatica Aplicada a la Biologıa Curso 2016/17

Dpto. Ecuaciones Diferenciales y Analisis Numerico, Universidad de Sevilla 48