lenguaje capìtulo ii

16
CAPÌTULO II LENGUAJES DE PROGRAMACIÓN

Upload: fabian-jacome

Post on 06-Apr-2016

232 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Lenguaje capìtulo II

CAPÌTULO II

LENGUAJES DE

PROGRAMACIÓN

Page 2: Lenguaje capìtulo II

OBJETIVO DE LA UNIDAD

Comprender la importancia de los lenguajes de programación, los tipos y la clasificación de los mismos como un recurso tecnológico que facilita la automatización de procedimientos y aplicaciones que facilitan las diferentes el desempeño agil, oportuno y fiable del ser humano en las áreas y actividades del conocimiento y del quehacer diario...

CRITERIOS DE EVALUACION

Conceptualizar un programa para computadora.Analizar los diferentes tipos de lenguajes de programación.Diferenciar las funciones del intérprete y compilador.Establecer un cuadro comparativo entre los lenguajes de alto y bajo nivel.Responder con propiedad y responsabilidad a los cuestionamientos de los compañeros estudiantes.Establecer criterios de consulta e investigación de manera criteriosa y responsable

RESUMEN

Un lenguaje de programación son idiomas, maneras de escribir que puede ser utilizado para controlar el comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programación y lenguaje informático como si fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como, compiladores e intérpretes que ayudan en la automatización d los procesos requeridos.

Page 3: Lenguaje capìtulo II

LA PROGRAMACIÓN

Al desarrollarse las primeras computadoras electrónicas, se vio la necesidad de programarlas, es decir, de almacenar en memoria la información sobre la tarea que iban a ejecutar Para asegurarse que la computadora entienda las instrucciones, se han establecido lenguajes bien definidos para especificar y poder generar la comunicación con el computador. Estos lenguajes tienen características similares a los lenguajes comunes que utilizan las personas para comunicarse unas con otras, pues cuentan con reglas y estructuras que deben seguirse.

¿QUE SON LOS LENGUAJES DE PROGRAMACIÓN?

ara empezar a explicar qué son los lenguajes de programación empezaremos dando por hecho que entendéis lo que es un “lenguaje” cualquiera, que no es más que un sistema estructurado de comunicación, como por ejemplo el lenguaje humano que nos permite comunicarnos unos con otros por medio de signos (palabras, sonidos, gestos…etc.). Pues bien, entendiendo esto es muy fácil entender qué es un lenguaje de programación. Componentes del lenguaje de programación:Un Léxico: Compuesto por el vocabulario o conjunto de símbolos permitidosUna sintaxis: La secuencia o escritura como realizar construcciones de lenguajeUna semántica Determina el significado de cada construcción correcta del lenguaje.

¿Por qué quieres aprender a programar?

Es probable que, dependiendo de lo que quieras programar o para qué, la elección ya esté tomada aunque tú todavía no lo sepas. Para programar páginas web, por ejemplo, deberías aprender HTML, CSS, JavaScript y quizás PHP para la interactividad. Si tu objetivo es solo desarrollar aplicaciones móviles, lo que deberías aprender, para empezar, sería Objective-C para iOS o Java para Android.

Page 4: Lenguaje capìtulo II

Si lo que quieres es ir más allá de un proyecto específico, o quieres aprender varios lenguajes, lo mejor para empezar es aprender fundamentos de programación, y aprender a 'pensar como un programador'. En este sentido hasta las aplicaciones y métodos para enseñar a programar a los niños pueden serte útiles.

El término “programación” se define como un proceso por medio del cual se diseña, se codifica, se escribe, se prueba y se depura un código básico para las computadoras. Ese código es el que se llama “código fuente” que caracteriza a cada lenguaje de programación. Cada lenguaje de programación tiene un “código fuente” característico y único que está diseñado para una función o un propósito determinado y que nos sirven para que una máquina o computador se comporte de una manera deseada.

A continuación se presenta como ejemplo un sencillo programa fuente, escrito en C, el cual, es un lenguaje de programación que llegó a ser muy popular, y justo al lado se explica la acción que realizará la computadora en respuesta a los comandos del programa. El programa tiene como finalidad el cálculo del promedio de una lista de cinco números.

Instrucciones en Lenguaje C Acción de la computadora

int datos[ ] = { 25, 88, 20, 75, 62 }; 1.- Define una matriz (datos) de números enteros y le asigna los valores 25, 88, 20, 75, 62.

int nDatos = 5; 2.- Define la variable (nDatos) de tipo entero y le asigna el valor 5.

int promedio () 3.- Define la función (promedio) que devuelve un número entero.

{int suma; 4.- Define la variable (suma) de tipo entero. int prom; 5.- Define la variable (prom) de tipo entero. int cont; 6.- Define la variable (cont) de tipo entero. suma = 0; 7.- Asigna a suma el valor 0.

for (cont=0; cont<nDatos; cont++) 8.- Para cada elemento de la matriz datos, añade su valor a la variable suma.

{ suma += datos [cont];}

prom=suma/nDatos; 9.- Asigna a prom el resultado de dividir la variable suma por la variable nDatos.

return (prom); 10.- Devuelve como resultado de la función el contenido de la variable prom.

}

¿QUÉ TIPOS DE LENGUAJE DE PROGRAMACIÓN HAY Y PARA QUE SIRVEN?

En la actualidad hay más de 100 lenguajes de programación diferentes. No vamos a definir todos los lenguajes de programación que existen porque son muchos pero sí os hablaremos de los más importantes y para qué se utilizan.

Se clasifican en dos tipos:

Page 5: Lenguaje capìtulo II

Los Lenguajes de Programación de Bajo Nivel: que son aquellos que están escritos en “lenguaje binario” o “código binario” o “código máquina” que consiste en una combinación de ceros y unos básicamente, es decir, una máquina sólo utiliza los números 0 y 1 . Estos lenguajes son los que ordenan a la máquina operaciones fundamentales para que pueda funcionar. Con este tipo de lenguajes programan la asignación y liberación de memoria, el uso de punteros, el poder usar paso por valor y por referencia, la creación de tipos de datos, etc.

Entonces nuestra lista de instrucciones para sumar 20 y 45 se codificaría como la lista de números siguiente: 1, 20, 2, 45, 3, 0 la que se expresaría en código de máquina en binario de la siguiente forma:

<strong>0000 0001</strong><strong>0000 0010</strong><strong>0001 0100</strong><strong>0000 0010</strong><strong>0010 1101</strong><strong>0000 0011</strong><strong>0000 0000</strong>

Los Lenguajes de Alto Nivel: Estos lenguajes son más parecidos al lenguaje natural humano y no dependen de la máquina y sirven fundamentalmente para crear programas informáticos que solucionan diferentes problemas. Son los más usados por los programadores y por todo del mundo que realiza programas informáticos. Ventajas de los lenguajes de alto nivel

El tiempo de formación de los programadores es relativamente corto comparado con otros lenguajes.

La escritura de programas se basa en reglas sintácticas similares a los lenguajes humanos. Nombres de las instrucciones tales como READ, WRITE, PRINT, OPEN, etc.

Las modificaciones y puestas a punto de los programas son más fáciles. Reducción del coste de los programas.

OPERACION  CODIGOMAQUINA   NEMOTECNICO

 Cargar registro   001   CAAlmacenar registro   010   ALSumar en registro aritmético   011   SUMRestar en registro aritmético   100   RESSaltar si contenido cero   101   SCSaltar si contenido no-cero   110   SNCDecrementar registro "I"   111  

Page 6: Lenguaje capìtulo II

La diferencia fundamental se puede explicar con el siguiente ejemplo:

En un lenguaje de alto nivel sólo tengo que poner sqt(x), que sería una función predeterminada,

Calcular el cuadrado de x.

Si fuera de bajo nivel, se debería crear una función, pero teniendo conocimiento de cómo se calcula el cuadrado de un número: cuadrado(x) = x * x   Como vemos para aprender a programar con un lenguaje de alto nivel debemos conocer el propio lenguaje que utiliza y todos sus comandos, en el ejemplo saber que sqt realiza el cuadrado de un número.   Para no extendernos mucho en este tema que es bastante amplio, pasaremos a explicaros algunos de los lenguajes de programación más utilizamos.

Lenguaje C Lenguaje Ensamblador#include#includemain(){int a, b,c;

printf("Bienvenido a suma de dos números\nDígita el primer número ");scanf("%d",&a);printf("Dígita el segundo número ");scanf("%d",&b);c=a+b;printf("El resultado de la adición es:%d",c);

getch();return 0;

}

.data # Comienza la sección de datos # Se define el formato a imprimirstring: .asciz "Resultado = %d\n"valor1: .int 530 # Variable que almacena el primer valorvalor2: .int -927 # Variable que almacena el segundo valorresult: .space 4 # Espacio reservado para el resultado

.text # Comienza la sección de código .globl main # Declaración de main como símbolo global

main: push %eax push %ecx push %edx

mov valor1, %eax add valor2, %eax mov %eax, result add %eax, result push %eax push $string call printf add $8, %esp pop %edx pop %ecx pop %eax ret # termina el programa

Lenguaje Visual BasicPublic class Form1

Private Sub Button1_click()

Page 7: Lenguaje capìtulo II

Dim A As IntegerDim B AS Integer

A=5B=6

Dim C As IntegerC= A + B

End Sub

Traductores de lenguaje

Los programas fuentes escritos en lenguajes de alto nivel previa ejecución deben ser traducidos al lenguaje de máquina a través de traductores denominados intérpretes y compiladores.

¿Qué es un compilador?Un compilador es un programa que lee un programa escrito en lenguaje fuente, y lo traduce a un programa objeto en lenguaje de maquina a través de un programa enlazador cuya función es hacerlo un programa ejecutable directamente por la máquina.

Como parte importante de este proceso de traducción, el compilador informa a su usuario de la presencia de errores en el programa fuente. Una vez que se obtiene el lenguaje objeto este es independiente del código fuente.

Los compiladores tradicionales traducen el código fuente a código de máquina.

Ventajas de compilar frente a interpretar:

Se compila una vez, se ejecuta n veces. En bucles, la compilación genera código equivalente al bucle, pero interpretándolo se

traduce tantas veces una línea como veces se repite el bucle. El compilador tiene una visión global del programa, por lo que la información de

mensajes de error es más detallada. Ventajas del intérprete frente al compilador: Un intérprete necesita menos memoria que un compilador. En principio eran más

abundantes dado que los ordenadores tenían poca memoria. Permiten una mayor interactividad con el código en tiempo de desarrollo.

¿Qué es un Intérprete?Se ha señalado que la computadora sólo puede ejecutar instrucciones en código de máquina, por lo cual, todos los programas escritos en cualquiera de los lenguajes de programación deben ser convertidos o traducidos. Este proceso es llevado a cabo por un programa especial, el “interprete”. El cual trasforma y ejecuta línea a línea. Para darse una idea de cómo funcionan, es útil comparar su actuación con la de un profesional humano encargado de traducir. Un compilador equivale a que el traductor humano, partiendo de un texto, prepare otro texto nuevo e independiente,

Page 8: Lenguaje capìtulo II

traducido a la otra lengua. En contraste, un intérprete equivale a que tal profesional traduzca de forma hablada, cada grupo de palabras o instrucción, a medida que la oye, sin dejarlas por escrito.

Clasificación de los lenguajes de alto nivel

El desarrollo de las técnicas nemotécnicas y las macroinstrucciones condujo, a su vez, al desarrollo de lenguajes de alto nivel que a menudo están orientados hacia una clase determinada de problemas de proceso. Por ejemplo, se han diseñado varios lenguajes para procesar problemas científico-matemático, asimismo han aparecido otros lenguajes que hacen hincapié en las aplicaciones de proceso de archivos.A diferencia de los programas de ensamble, los programas en lenguaje de alto nivel se pueden utilizar con diferentes marcas de computadores sin tener que hacer modificaciones considerables. Esto permite reducir sustancialmente el costo de la reprogramación cuando se adquiere equipo nuevo. Otras ventajas de los lenguajes de alto nivel son:

Son más fáciles de aprender que los lenguajes ensambladores. Se pueden escribir más rápidamente. Permiten tener mejor documentación. Son más fáciles de mantener. Un programador que sepa escribir programas en uno de estos lenguajes no está limitado

a utilizar un solo tipo de máquina.Por esta razón según el modelo básico de diseño e implementación del programa codificado a través del lenguaje pueden ser:

1. Lenguajes Imperativos.2. Lenguajes orientados a objetos3. Lenguajes funcionales4. Lenguajes de programación lógica

LENGUAJES DE PROGRAMACIÓN IMPERATIVOSEn ciencias de la computación se llama lenguajes imperativos a aquellos en los cuales se le ordena a la computadora cómo realizar una tarea siguiendo una serie de pasos o instrucciones, por ejemplo:Paso 1, solicitar número.Paso 2, multiplicar número por dos.Paso 3, imprimir resultado de la operación.Paso 4, etc,El proceso anterior se puede realizar con un lenguaje imperativo como por ejemplo BASIC o C

Page 9: Lenguaje capìtulo II

Así los lenguajes imperativos se basan en comandos u órdenes que se le dan a la computadora para que haga algo, con el fin de organizar o cambiar valores en ciertas partes de la memoria.La ejecución de estos comandos se realiza, en la mayor parte de ellos, secuencialmente, es decir, hasta que un comando no ha sido ejecutado no se lee el siguiente.Entre los lenguajes Imperativos más importantes que se pueden mencionar:

Clipper Fortran Dbase Pascal Cobol Perl, Modula 2 etc.

LENGUAJES ORIENTADOS A OBJETOS La Programación Orientada a Objetos (POO u OOP según siglas en inglés) se definen los programas en términos de "clases de objetos", objetos que son entidades que combinan estado (es decir, datos) comportamiento (esto es, procedimientos o métodos) e identidad (propiedad del objeto que lo diferencia del resto). La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas módulos más fáciles de escribir, mantener y reutilizar.De esta forma, un objeto contiene toda la información, (los denominados atributos) que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de la misma clase, al poder tener valores bien diferenciados en sus atributos). A su vez, dispone de mecanismos de interacción (los llamados métodos) que favorecen la comunicación entre objetos (de una misma clase o de distintas), y en consecuencia, el cambio de estado en los propios objetos. Esta característica lleva a tratarlos como unidades indivisibles, en las que no se separan (ni deben separarse) información (datos) y procesamiento (métodos).

Entre los lenguajes orientados a objetos más importantes que se pueden mencionar, aparecen los siguientes:

Ada C++ C Sharp Visual Basic.NET Clarion Delphi Eiffel Java PHP Objective-C Ocaml Oz PowerBuilder Pitón Ruby Smalltalk

LENGUAJES FUNCIONALES

Page 10: Lenguaje capìtulo II

La programación funcional está basado en la utilización de funciones matemáticas. El objetivo de la programación funcional es conseguir lenguajes expresivos y matemáticamente elegantes, en los que no sea necesario bajar al nivel de la máquina para describir el proceso llevado a cabo por el programa.

Los programas escritos en un lenguaje funcional están constituidos únicamente por definiciones de funciones, en las que se verifican ciertas propiedades como la transparencia referencial (el significado de una expresión depende únicamente del significado de sus subexpresiones), y por tanto, la carencia total de efectos laterales.Algunos lenguajes funcionales pueden ser:

Haskell Miranda Scala Echeme Ocaml SAP Estándar ML

LENGUAJES DE PROGRAMACIÓN LÓGICA

Se fundamentan en la fusión de la programación declarativa y funcional, la programación declarativa gira en torno al concepto de predicado o relación entre elementos. La programación funcional se basa en el concepto de función. La computación lógica direcciona métodos de procesamiento basados en razonamiento formal. Los objetos de tales razonamientos son (hechos) o (reglas).

Así un hecho es una expresión en la que algún objeto/s satisface una relación especifica; una regla (if then) es un estamento que informa de acerca de las relaciones existentes con otros estamentos.

Se establece entonces que la idea esencial de la programación lógica es: algoritmos = lógica + control. Es decir, un algoritmo se construye especificando conocimiento en un lenguaje formal (lógica de primer orden), y el problema se resuelve mediante un mecanismo de inferencia (control) que actúa sobre aquél.- Definiéndolo como uno de sus lenguajes más representativos, que es un clásico de la inteligencia artificial y que se aplica de múltiples formas en el desarrollo de software comercial.

Algunos lenguajes Lógicos son: Prolog Lisp Clips

Page 11: Lenguaje capìtulo II

AUTOEVALUACIONESTUDIANTE ESPECIALIDADFECHA CURSO PARALELO

Señor estudiante.- El documento tiene como objetivo mejorar su rendimiento académico en la asignatura de Fundamentos de Programación por lo tanto se le recomienda cumplircon lo solicitado. Recuerde el trabajo es individual

1. Lea el documento y haga un resumen en la hora de clase 2. Elabore un cuestionario de 20 preguntas 3. Elabore las respuestas planteadas al cuestionario, el mismo que de entre los estudiantes

se escogerá uno y se lo aplicará como evaluación. (5,0 puntos)4. La aplicación de la evaluación (5,0 puntos)

Resumen