Download Semana 7 Tipos de lenguajes de programación

Document related concepts

Little man computer wikipedia , lookup

Lisp wikipedia , lookup

Rust (lenguaje de programación) wikipedia , lookup

Programación funcional wikipedia , lookup

J (lenguaje de programación) wikipedia , lookup

Transcript
Semana
Lenguajes7de programación
Tipos de lenguajes de programación
Semana 6
¡Empecemos!
Estimados participantes, bienvenidos a esta nueva semana, en
la que estudiaremos los lenguajes de programación más utilizados. No olvides repasar los temas vistos anteriormente, pues
son la base para lo que veremos
a partir de ahora.
¿Qué sabes de...?
¿Consideras que ya manejas lo que es un lenguaje de programación? Y ¿podrías definir cuál es su importancia?
El reto es...
Debate con tus compañeros y elabora una lista de los lenguajes de programación más utilizados, para qué sirven y dónde se aplican.
Vamos al grano
Ya sabemos que el lenguaje de programación es una serie de símbolos
que, debidamente codificados, sirve para comunicarnos con las computadoras, lo que permite, a su vez, resolver algunos problemas en cualquier área
disciplinaria.
Existen muchos lenguajes de programación ubicados en tres grandes grupos: lenguajes de bajo nivel, lenguajes de nivel medio y lenguajes de alto
nivel.
Lenguajes de bajo nivel
Son aquellos totalmente dependientes de la máquina, es decir, el programa
que se realiza con este tipo de lenguajes no se puede migrar o utilizar en otras
máquinas. Al estar prácticamente diseñados para el hardware, aprovechan al
máximo las características del mismo. Dentro de este grupo se encuentran:
313
Semana 7
Tipos de lenguajes de programación
• Lenguaje máquina: ordena a la máquina las operaciones fundamentales
para su funcionamiento. Consiste en la combinación de 0´s y 1´s para
formar las órdenes entendibles por el hardware de la máquina. Este lenguaje es mucho más rápido que los de alto nivel. La desventaja es que
son bastante difíciles de manejar y usar, además de tener códigos fuente enormes, donde encontrar un error es casi imposible.
• Lenguaje ensamblador: es un derivado del lenguaje máquina y está formado por abreviaturas de letras y números llamadas mnemotécnicos.
Con la aparición de este lenguaje, se crearon los programas traductores,
para poder pasar los programas escritos en lenguaje ensamblador a lenguaje máquina. Como ventaja con respecto al código máquina, los códigos fuentes eran más cortos y los programas creados ocupaban menos
memoria.
Por ejemplo, la estructura mostrada en la tabla 4 representa un lenguaje de
bajo nivel.
Tabla 4
Código de dirección
00010101 10000001
00010111 10000010
00010110 10000011
Significado de operación
a) Cargar contenido de la dirección 129 en
acumulador
b) Sumar contenido de la dirección 130 al
acumulador
c) Almacenar contenido del acumulador en la
dirección 131
d) 10000011 = 27+21+20 = 131
Recuerda que el sistema binario (sistema numérico de base 2) es el utilizado
por las computadoras; está compuesto por cero (0) y uno (1) en sus infinitas
combinaciones. La presencia de 0 o 1 indica la ausencia o presencia de un
grupo considerado de bits, expresado en forma de potencia en base 2. En la
columna de la izquierda de la tabla 4 está la dirección en el sistema binario,
cuyo significado se expresa en la columna de la derecha de la misma tabla.
El código 10000001 en el sistema binario, expresado en el sistema decimal
queda como 129. Así,
10000001 = 27+26+25+24+23+22+21+20 = 128+0+0+0+0+0+0+1 = 129
Como ves, sólo hay dos grupos de bits expresados como 27 y 20. Al sumar
ambos, tenemos: 128+1 = 129.
Repasa el tema del sistema de numeración binario y potenciación, para entender un poco más el mismo, ya que es el modo rudimentario para comunicarse con la computadora a nivel de hardware.
314
Lenguajes de medio nivel
Estos lenguajes se encuentran en un punto medio entre los de bajo y los de
alto nivel. Dentro de estos lenguajes podría situarse C, ya que puede acceder
Tipos de lenguajes de programación
Semana 7
a los registros del sistema, trabajar con direcciones de memoria, todas ellas
características de lenguajes de bajo nivel y, a la vez, realizar operaciones de
alto nivel.
Bien, ya empiezan a aparecer nombres de lenguajes, como el C, el cual es
sencillamente la manera de expresarse para comunicarse con la computadora, a nivel de hardware (parte física) y software (programas), no tan elevados
como el de alto nivel que veremos posteriormente.
Un algoritmo en lenguaje C, es el siguiente:
Cálculo del promedio de una lista de los números 5, 8, 2, 7, 6
Tabla 5
Instrucciones en
Lenguaje C
int datos[ ] = { 5, 8, 2, 7, 6,
9 };
int nDatos = 6;
int promedio ()
{
int suma;
int prom;
int cont;
suma = 0;
for (cont=0; cont<nDatos;
cont++)
{
suma += datos [cont];
}
prom=suma/nDatos;
return (prom);
Acción de la computadora
1.Define una matriz (datos) de números enteros y le asigna los valores 5, 8, 2, 7, 6, 9
2.Define la variable (nDatos) de tipo entero y
le asigna el valor 6.
3.Define la función (promedio) que devuelve
un número entero.
4.Define la variable (suma) de tipo entero.
5.Define la variable (prom) de tipo entero.
6.Define la variable (cont) de tipo entero.
7.Asigna a suma el valor 0.
8.Para cada elemento de la matriz datos, añade su valor a la variable suma.
9.Asigna a prom el resultado de dividir la variable suma por la variable nDatos.
10. Devuelve como resultado de la función el
contenido de la variable prom.
}
Fíjate que a la izquierda tenemos instrucciones en lenguaje C y, a la derecha,
lo que haría la computadora obedeciendo a cada orden.
Las instrucciones son, en su mayoría, en idioma inglés, por lo que te recomendamos tener un diccionario Inglés-Español a la mano.
315
Semana 7
Tipos de lenguajes de programación
Lenguajes de alto nivel
Son aquellos que se encuentran más cercanos al lenguaje natural que al
lenguaje máquina. Están dirigidos a solucionar problemas mediante el uso
de estructuras dinámicas de datos (EDDs). Estas son estructuras que pueden
cambiar de tamaño durante la ejecución del programa y permiten crear estructuras de datos que se adapten a las necesidades reales de un programa.
Se trata de lenguajes independientes de la arquitectura del ordenador. Por
lo que, en principio, un programa escrito en un lenguaje de alto nivel, lo puedes migrar de una máquina a otra, sin ningún problema.
Estos lenguajes permiten al programador olvidarse por completo del funcionamiento interno de la máquina para la que están diseñando el programa.
Cualquiera sea el tipo de lenguaje que utilices, la máquina siempre entenderá un lenguaje de bajo nivel, por lo que se necesita un módulo que haga
la interpretación y comunique a la computadora las instrucciones, es decir,
este módulo actúa como traductor. A este traductor también se le denomina
compilador. Ahora, mira esta acotación:
Un programa escrito en un lenguaje de alto nivel, debe ser compilado
o interpretado para traducir su código, en otro de bajo nivel (lenguaje
máquina). Como ejemplo de lenguajes de alto nivel se tienen: Pascal,
BASIC, FORTRAN, COBOL, Java, C y C++.
En los lenguajes de alto nivel las instrucciones son independientes de
la máquina, son más fáciles de aprender porque están formadas por
elementos de lenguajes naturales (del inglés). En BASIC, comandos
como “IF CONTADOR = 10 THEN STOP” son usados para ordenar a la
computadora, que pare si CONTADOR es igual a 10. Pero, aunque las
computadoras parecieran comprender el lenguaje natural, lo hacen
de una manera bastante rígida y sistemática, lo cual podría parecer un
poco frustrante e inspira la búsqueda de lenguajes más cercanos aún
al natural.
Tomado de: http://li.co.ve/z9n
Analiza el ejemplo de un algoritmo para hallar el mayor de dos números (a
y b) codificado en lenguaje C++ (ver tabla 6).
316
Semana 7
Tipos de lenguajes de programación
Tabla 6
Pseudocódigo
procedimiento principal()
variables
C++
/* para mostrar en pantalla */ #include <iostream.h>
void main(){
a:entero
int a; /* a es entera */
b:entero
int b; /* b es entera */
inicio
cout <<“Digite número:”;
escribir (“Digite número:”)
cin >> a;
leer (a)
cout <<“Digite número:”;
escribir (“Digite número”)
cin >>b;
leer (b)
if( a<b ){
si (a<b) entonces
cout <<“El mayor es:”;
escribir (“El mayor es:”)
cout << b;}
escribir( b)
else{
si no
cout <<“El mayor es:”;
escribir (“El mayor es:”)
escribir (a)
fin_si
fin_procedimiento
cout << a;
}
}
Recuerda el tema sobre pseudocódigo estudiado en el 10mo semestre y en
las primeras semanas de este semestre.
Así como existen muchas lenguas o idiomas para comunicarse en el lenguaje natural, existen también diferentes lenguajes
de programación. Pero, ¿por qué existen
estos? Probablemente por la diversidad de
desarrolladores disponibles actualmente y
por las investigaciones que apuntan a una
comunicación más directa y natural con las
máquinas. Y tú, ¿qué piensas?
317
Semana 7
Tipos de lenguajes de programación
Para saber más…
Te recomendamos visitar las direcciones web indicadas, para profundizar en el tema de esta semana.
http://li.co.ve/zHq
http://li.co.ve/z9n
Aplica tus saberes
1. Escribe verdadero (V) o falso (F), según sea el caso, en las siguientes afirmaciones.
a) Los lenguajes de programación se dividen en bajo nivel, nivel medio y alto nivel ( )
b) Los lenguajes de bajo nivel son los que están más cerca del lenguaje natural ( )
c) Los lenguaje de máquina o ensamblador son los encargados de dar
instrucciones a la computadora ( )
d) Los lenguajes de alto nivel están dirigidos a resolver problemas utilizando estructuras dinámicas ( )
e) El lenguaje máquina se codifica usando el sistema binario ( )
2. Define con tus propias palabras cada uno de los lenguajes de programación estudiados durante esta semana.
3. Identifica las siguientes expresiones en lenguaje de programación de
bajo nivel o alto nivel según sea el caso:
Tabla 7
Código
00010111 10000010
00010110 10000011
int a; /* a es entera */
if( a<b ){
cout << “El mayor es:”;
cout << b;}
318
Tipo de lenguaje
Tipos de lenguajes de programación
Semana 7
Comprobemos y demostremos que…
1. Elabora un lista de los lenguajes de programación de bajo y alto nivel
más utilizados y expresa para qué sirve cada uno.
2. Da al menos dos ejemplos de algoritmos codificados en cualquiera de
los lenguajes definidos en la pregunta 1.
3. Lleva a tu CCA el trabajo realizado y presenta una exposición del mismo,
de manera creativa.
319