Vous êtes sur la page 1sur 8

Carlos-Miguel Lorenzo - Sept 2014

Bloque II - Tecnologa Bsica


TEMA 4: LENGUAJES ACTUALES DE PROGRAMACIN. CARACTERSTICAS
TCNICAS. ESPECIALIDAD FUNCIONAL. PRODUCTIVIDAD. ESTANDARIZACIN.

GUIA DE ESTUDIO
1. INTRODUCCIN
Este tema trata de analizar las caractersticas y formas de utilizacin de los
lenguajes de programacin. Se ha de observar que el tema hace referencia a
lenguajes actuales. Es difcil poder determinar con exactitud qu se ha de
entender con el calificativo actual aplicado a los lenguajes, por este motivo a lo
largo de esta gua se ha tratado de abrir el abanico de opciones en todo lo posible.
Conviene igualmente sealar que los lenguajes de programacin no son lo mismo
que las tcnicas de programacin. De aqu que se haga un especial llamamiento al
estudio previo de tcnicas como la programacin estructurada, modular, orientada
a objetos etc. Igualmente se debe tomar en consideracin el repaso de algunos
lenguajes de programacin concretos: C, C++, Java, etc, cuyo estudio queda fuera
del alcance de este tema
2. CARACTERSTICAS TCNICAS DE UN LENGUAJE EN FUNCIN DEL NIVEL
2.1. Lenguajes Mquina.
Son lenguajes que permiten la representacin de las instrucciones que
componen el programa mediante combinaciones de ceros y unos (binario
puro).
2.2. Lenguajes Simblicos.
2.2.1. Lenguaje Ensamblador.
Se trata de lenguajes que asignan a cada instruccin del lenguaje
mquina (ceros y unos) un nombre nemotcnico con el fin de facilitar su
uso y significado
2.2.2. Lenguajes de Alto Nivel (LANs).
Se trata de lenguajes prximos al lenguaje natural que proporcionan:
Instrucciones para representar la lgica del programa.
Estructuras de datos (tipos) independientes de la arquitectura
hardware subyacente.
3. ESPECIALIZACIN FUNCIONAL.
Teniendo en cuenta su nivel de especializacin podemos clasificar los lenguajes
en los siguientes tipos:
3.1. Propsito General: VBasic (Basic), Delphi (Pascal), C++ (C), Java, C#...
3.2. Propsito Especfico:
3.2.1. Gestin de Empresa: COBOL, RPG, SQL, PL1
3.2.2. Cientficos: Fortran, Mathlab
3.2.3. Inteligencia Artificial: Prolog, Lisp
3.2.4. Aplicaciones Web: PHP, Perl, Phyton, JavaScript

Carlos-Miguel Lorenzo - Sept 2014


4. LENGUAJES ORIENTADOS A OBJETOS (LOO)

Los Lenguajes Orientados a Objetos (LOO) se caracteriza por incorporar dentro de


su sintaxis un repertorio de expresiones que permitan representar las propiedades
fundamentales del paradigma de Orientacin a Objetos. Estas caractersticas las
resumimos en la siguiente tabla:
4.1. Clase.
Una clase es un conjunto de objetos con elementos comunes. Se
componen de atributos y mtodos.
4.2. Objetos.
Representan la instanciacin o ejemplificacin de una clase. Los objetos,
a diferencia de las clases, slo existen en tiempo de ejecucin.
4.3. Tipos Abstractos de Datos (TDA) Encapsulacin.
El objeto puede ser visto como una caja negra. La estructura interna
permanece oculta, tanto para el usuario como para otros objetos diferentes,
aunque formen parte de la misma jerarqua, reduciendo la propagacin de
efectos colaterales cuando ocurren cambios
4.4. Polimorfismo / Sobrecarga.
Se refiere a la posibilidad de utilizar un mismo identificador en diferentes
contextos. Puede darse de tres formas diferentes:
Mtodos: en este caso se denomina sobrecarga y ocurre cuando
en una clase existen dos mtodos con idntico nombre pero con
distinta lista de parmetros. El compilador los considera como dos
mtodos distintos y aplicar cada uno de ellos en la situacin
apropiada.
Propieades: es al que se refiere normalmente el concepto de
polimorfismo y coincidira con el concepto anteriormente expuesto.
4.5. Herencia.
La herencia es la propiedad por la cual una clase asume como propios
todos los atributos y mtodos definidos por otra.
4.6. Enlace dinmico.
Capacidad de retrasar hasta el instante de ejecucin la decisin sobre la
clase de objeto que lo recibe y el mtodo concreto que debe aplicarse
5. LENGUAJES MULTIPLATAFORMA: JAVA

Un lenguaje multiplataforma es aquel que permite la codificacin de programas que


pueden ser ejecutados en cualquier arquitectura hardware o software y el cdigo
resultante en la ejecucin puede provenir de mltiples orgenes. El primer ejemplo
de lenguaje de este tipo fue Java, en la actualidad existen otros como C# o Phyton
5.1. Caractersticas de Java.
- Orientacin a objetos
- Robusto. Interpretado.
- Arquitectura neutral
- Trabajo en red
- Applets
- Seguridad
5.2. Entornos de desarrollo Java
5.2.1. Del lado del Cliente:
Applets: aplicaciones Java que se ejecutan bajo el contexto de un
navegador.
Aplicaciones ordinarias. Programas desarrollados con la misma idea
y funcionalidad que con los lenguajes convencionales.
5.2.2. Del lado del Servidor:
2

Carlos-Miguel Lorenzo - Sept 2014

Servlets: aplicaciones Java que devuelven cdigo HTML, normalmente


se utilizan para la generacin de pginas dinmicas o control de
acceso.
JSP. Se trata de pginas de contenido dinmico formadas por cdigo
HTML y Java embebido.
EJBs. Componentes de software implementados en Java, reutilizables
y ejecutables en una arquitectura diseada al efecto: Java Enterprise
Edition

6. LENGUAJES DE CUARTA GENERACIN: SQL. (4GL)

Un lenguaje 4GL es aquel que se caracteriza por tener que indicar nicamente qu
datos se van a acceder y nunca el cmo. Esta ltima propiedad es lo que los
diferencia de los 3GL.
6.1. Caractersticas.
- Permite expresar operaciones diversas, por ejemplo aritmticas,
combinatorias y lgicas, con datos almacenados en Bases de Datos
Relacionales.
- SQL significa Structured Query Language (Lenguaje Estructurado de
Consultas)
6.2. Sentencias.
Las sentencias que forman parte de SQL las podemos clasificar en las
siguientes categoras:
- DDL.Data Definition Language. Permiten definir nuevos objetos y/o
destruir otros existentes. Algunos ejemplos de sentencias son las de tipo
CREATE y DROP.
- DML: Data Manipulation Language. Permiten realizar consultas y
mantenimiento de los datos. Comienzan con las siguientes palabras del
lenguaje: SELECT, INSERT, UPDATE y DELETE.
- DCL: Data Control Language Permite establecer y denegar privilegios y
roles sobre objetos existentes en la base de datos. Adems posibilita la
gestin de transacciones. Algunos ejemplos sera: GRANT, REVOKE,
COMMIT, ROLLBACK.
7. PRODUCTIVIDAD: Las mtricas orientadas al tamao del cdigo.
El mtodo COCOMO

Una metodologa que se encarga de medir proyectos software es COCOMO que


utiliza como valor de referencia el nmero de lneas de cdigo (lenguajes).
Hay una jerarqua de modelos COCOMO que permite clasificar los proyectos en
los siguientes tipos:
1. Orgnico: Se tiene experiencia en proyectos similares y se encuentra en
un entorno estable.
2. Semiacoplado: La experiencia en este tipo de proyectos es variable, y las
restricciones intermedias.
3. Empotrado: apenas se tiene experiencia y en un entorno de gran
innovacin tcnica.
Dado que slo se va a emplear una variable para la estimacin (la lnea de cdigo),
se emplear COCOMO bsico, ya que es un modelo univariable esttico, con lo
que se obtiene una valoracin objetiva del esfuerzo realizado
La ecuacin del esfuerzo de COCOMO bsico tiene la siguiente forma:
E = Esfuerzo = a KLDC b (persona x mes)
donde KLDC es el nmero de lneas de cdigo, distribuidas en millares, para el
proyecto.
La ecuacin del tiempo de desarrollo es:
3

Carlos-Miguel Lorenzo - Sept 2014

T = Tiempo de duracin del desarrollo = c Esfuerzo d (meses)


Por su parte los coeficientes a, b, c y d se obtienen empricamente del estudio de
una serie de proyectos, y sus valores son:
Proyecto
de a
b
c
d
software
Orgnico
2,4 1,05
2,5
0,38
Semiacoplado
3,0 1,12
2,5
0,35
Empotrado
3,6 1,20
2,5
0,32
Tabla "Coeficientes COCOMO"

Carlos-Miguel Lorenzo - Sept 2014

8. ESTANDARIZACIN: Valoracin Lenguajes en funcin de sus caractersticas


Lenguaje

4GL

3GL

2GL

S
Q
L

A
d
a
9
5

C
+
+

C
O
B
O
L

F
O
R
T
R
A
N

J
a
v
a

S
m
a
l
l
t
a
l
k

A
s
s
e
m
b
l
e
r

Claridad del cdigo fuente

Complejidad de manejo
(arquitectura de soporte)

Soporte de Concurrencia

Soporte de sistemas
Distribuidos

Mantenimiento

Soporte de lenguajes
Mixtos

Soporte de programacin
orientado a objetos

10

10

10

10

Portabilidad

Soporte de tiempo-Real

Confianza

Reusabilidad

Seguridad

Estandarizacin

10

Soporte para mtodos de


ingeniera modernos

Promedio de los lenguajes

1,5

8,2

2,8

5,6

1,8

2,4

7,1

4,35

0,8

Caractersticas
de los
Lenguajes

Carlos-Miguel Lorenzo - Sept 2014

9. CLASIFICACIN LENGUAJES CRONOLGICAMENTE

Carlos-Miguel Lorenzo - Sept 2014

ANEXO. VOCABULARIO
Algoritmo Es un conjunto de acciones o secuencia de operaciones que ejecutadas
en un determinado orden resuelven el problema. Existen n algoritmos, hay que
coger el ms efectivo.
Diagramas N-S (Nassi-Schneiderman) representacin normalizada de un
algoritmo en forma de bloque lgicos
Pseudocdigo: Es un lenguaje de especificacin de algoritmos prximo al
lenguaje natural y que permite una rpida traduccin a los lenguajes de
programacin de alto nivel.
Ordinograma o diagrama de flujo. Representacin de un algoritmo mediante un
conjunto de smbolos como los siguientes:
SMBOLO
SIGNIFICADO
Terminal, inicio o fin de
algoritmo
Proceso

Decisin Alternativa

Entrada / Salida cualquiera

Llamada a subrutina

Salida a Impresora

Instruccin: cada una de las tareas elementales a realizar por un elemento de


computacin.
Programa:. un programa es un conjunto de instrucciones que al ser ejecutadas
resuelven un problema.
Lenguaje de Programacin: conjunto de normas lingsticas que permiten
escribir un programa y que ste sea entendido por el ordenador y pueda ser
trasladado a ordenadores similares para su funcionamiento en otros sistemas.
Compilador: es un traductor que convierte un texto escrito en un lenguaje
fuente de alto nivel en un programa objeto en cdigo mquina. El esquema de
un compilador (Lenguaje C) sera el siguiente:

Carlos-Miguel Lorenzo - Sept 2014

Intrprete: Es un traductor que realiza la operacin de traduccin paso a


paso. Para cada sentencia que compone el texto de entrada, se realiza una
traduccin, ejecuta dicha sentencia y vuelve a iniciar el proceso con la
sentencia siguiente.