Sie sind auf Seite 1von 13

Programa 111K

Apunte

Profesor
Lic. Sebastin Torralba
Contenido
Concepto de Lenguaje de Programacin ....................................................................................... 2
Historia de Los Lenguajes de Programacin ...................................................................................3
Sintaxis y Compilacin de Los Lenguajes de Programacin ............................................................3
Sintaxis: ......................................................................................................................................3
Semntica: ................................................................................................................................ 4
Pragmatismo: ............................................................................................................................ 4
Compilacin: ............................................................................................................................. 4
Criterios de Diseo ........................................................................................................................ 4
Simplicidad ................................................................................................................................ 4
Extensibilidad ............................................................................................................................ 4
Eficiencia ................................................................................................................................... 4
Seguridad .................................................................................................................................. 5
Portabilidad ............................................................................................................................... 5
Concepto de Paradigma ................................................................................................................ 5
Clasificacin de Paradigmas de Programacin .......................................................................... 5
Paradigma Imperativo ........................................................................................................... 6
Paradigma Declarativo .......................................................................................................... 6
Paradigma Estructurado ........................................................................................................ 6
Paradigma Funcional ............................................................................................................. 6
Paradigma lgico ................................................................................................................... 6
Paradigma Orientado a Objetos ............................................................................................. 7
Tipos de Lenguajes de Programacin ......................................................................................... 7
Nivel de Abstraccin del Procesador ...................................................................................... 8
Paradigma de Programacin ................................................................................................. 9
Forma de Ejecucin .............................................................................................................. 10

Lic. Torralba Sebastian Pagina 1


Concepto de Lenguaje de Programacin
Es un lenguaje diseado para comunicarnos la computadora, y esta realice los procesos que le
indicamos a travs de sentencias. Para ello el lenguaje debe ser claro ya sea para escribir el
proceso, o para su posterior lectura.

Los lenguajes de Programacin facilitan la creacin de programas debido a que solucionan ciertas
falencias de los Lenguajes Naturales.

Complejidad: Los Lenguajes Naturales poseen un gran abanico de palabras de las cuales
solo usamos una pequea fraccin de ellas. Los Lenguajes de Programacin (y de hecho
los procesadores tambin) tienen un juego reducidos de instrucciones, que facilita el
conocimiento completo del lenguaje.

Ambigedad: Ciertas palabras de Los Lenguajes Naturales poseen ms de un significado,


que surgir a partir del contexto en el cual la palabra sea usada.

Irregularidad: Si agrupamos las palabras segn cierto criterio, ese criterio debe
mantenerse tanto para la agrupacin, como para cada palabra que la compone. En Los
Lenguajes Naturales debido a su continua evolucin cada agrupacin tiene sus
excepciones a la regla.

Expresividad: Para representar una idea, los lenguajes naturales requieren adems de
muchsimo ms espacio fsico que en un lenguaje de programacin.

Lic. Torralba Sebastian Pagina 2


Historia de Los Lenguajes de Programacin

Ilustracin 1 Simplificacin de la Historia de Los Lenguajes de Programacin

Sintaxis y Compilacin de Los Lenguajes de Programacin


Los Lenguajes de Programacin estn compuestos por tres elementos equivalentes a los de la
lingstica natural:

Sintaxis:
Es la definicin de la estructura de las sentencias dentro de un lenguaje de programacin, para lo
cual se utiliza una simbologa definida para cada lenguaje, la correcta combinacin de simbologa
es lo que es concerniente la sintaxis.

La simbologa esta categorizada de la siguiente manera:

Palabras Reservadas
Operadores
Caracteres Especiales
Identificadores
Expresiones

Lic. Torralba Sebastian Pagina 3


Semntica:
Es el conjunto de reglas que le dan significado a las sentencias de programacin, es decir, es lo
que hace el programa. Las siguientes sentencias tiene diferentes sintaxis debido a que son de
diferentes lenguajes por la semntica es la misma

1) x += y; (C, Java, etc.)

2) x := x + y; (Pascal)

3) x = x + y (BASIC, FORTRAN)

Pragmatismo:
Es el Sentido de una sentencia, debido a que dos sentencias idnticas validas sintcticamente y
semnticamente, varan debido al contexto de ejecucin. Esto toma una forma ms tangible
cuando veamos el polimorfismo de algunos lenguajes de programacin.

Compilacin:
La Compilacin es la traduccin del cdigo fuente en el cdigo que una computadora es capaz de
interpretar, dicha traduccin puede suceder de tres maneras diferentes

1. Interprete
2. Compilador
3. Compilador para Mquina Virtual

Criterios de Diseo

Simplicidad
Todo Lenguaje debe ser simple de leer y escribir programas facilitando el desarrollo y su posterior
mantenimiento.

Extensibilidad
Debe permitir la creacin de nuevos objetos, tipo de datos, funciones, a partir de las primitivas
propuestas por el Lenguaje

Eficiencia
Existen dos puntos de vistas, para determinar la eficiencia de un lenguaje de programacin:

Lic. Torralba Sebastian Pagina 4


Para la maquina: una vez generado el cdigo mquina, su ejecucin de ser lo ms rpido posible y
gestionar los recursos de la mejor manera

Para el Programador: La eficiencia trabaja en forma conjunta con la Simplicidad y la Extensibilidad,


para realizar una mejor abstraccin o representacin del proceso que se est construyendo a
travs del lenguaje.

Seguridad
Debe proveer los mecanismos necesarios para prevenir, sentencias que violen la semntica del
lenguaje, es decir, que verifique los tipos de datos utilizados, las llamadas a funciones, los accesos
a memoria.

Portabilidad
Es la cualidad mas deseada en un lenguaje, para que el programa pueda ejecutarse no solamente
en la plataforma para la cual fue creado. Dicha Portablidad estar dada ya sea por la
recompilacion para la nueva plataforma, la implementacin del interprete o maquina virtual para
los lenguajes de script (interpretados) o de cdigo intermedio respectivamente.

Concepto de Paradigma

Un paradigma de programacin provee y determina la visin y mtodos de un programador en la


construccin de un programa o subprograma. Diferentes paradigmas resultan en diferentes estilos
de programacin y en diferentes formas de pensar la solucin de problemas (con la solucin de
mltiples problemas se construye una aplicacin o producto de software).
Los lenguajes de programacin estn basados en uno o ms paradigmas, por ejemplo: Smalltalk y
Java son lenguajes basados en el paradigma orientado a objetos. El lenguaje de programacin
Scheme, en cambio, soporta slo programacin funcional. Otros lenguajes, como C++ y Python
soportan mltiples paradigmas.

Clasificacin de Paradigmas de Programacin

Un paradigma de programacin representa un enfoque particular o filosofa para disear


soluciones. Los paradigmas difieren unos de otros, en los conceptos y la forma de abstraer los
elementos involucrados en un problema, as como en los pasos que integran su solucin del
problema, en otras palabras, el cmputo. Adems, los paradigmas dependen del contexto y el
tiempo en el que surgen, ya que nacen en base a una necesidad generalizada de la comunidad de
desarrolladores de software, para resolver cierto tipo de problemas de la vida real.
Un paradigma de programacin est delimitado en el tiempo en cuanto a aceptacin y uso, porque
nuevos paradigmas aportan nuevas o mejores soluciones que la sustituyen parcial o totalmente.
De esta forma podemos encontrar los siguientes tipos de paradigmas:

Lic. Torralba Sebastian Pagina 5


Paradigma Imperativo

Describe la programacin como una secuencia de instrucciones o comandos que cambian el estado
de un programa. El cdigo mquina en general est basado en el paradigma imperativo. Su
contrario es el paradigma declarativo. En este paradigma se incluye el paradigma procedural.

Paradigma Declarativo

No se basa en el cmo se hace algo (cmo se logra un objetivo paso a paso), sino que describe
(declara) cmo es algo. En otras palabras, se enfoca en describir las propiedades de la solucin
buscada, dejando indeterminado el algoritmo (conjunto de instrucciones) usado para encontrar esa
solucin. Es ms complicado de implementar que el paradigma imperativo, tiene desventajas en la
eficiencia, pero ventajas en la solucin de determinados problemas.

Paradigma Estructurado

La programacin se divide en bloques (procedimientos y funciones) que pueden o no comunicarse


entre s. Adems, la programacin se controla con secuencia, seleccin e iteracin. Permite
reutilizar cdigo programado y otorga una mejor compresin de la programacin. Es contrario al
paradigma no estructurado, de poco uso, que no tiene ninguna estructura, es simplemente un
bloque, como, por ejemplo, los archivos en lote o batch (.bat).

Paradigma Funcional

Este paradigma concibe a la computacin como la evaluacin de funciones matemticas y evita


declarar y cambiar datos. En otras palabras, hace hincapi en la aplicacin de las funciones y
composicin entre ellas, ms que en los cambios de estados y la ejecucin secuencial de comandos
(como lo hace el paradigma procedimental). Permite resolver ciertos problemas de forma elegante
y los lenguajes puramente funcionales evitan los efectos secundarios comunes en otro tipo de
paradigmas.

Paradigma lgico

Este paradigma se basa en los conceptos de lgica matemtica; trabaja con predicados que
caracterizan o relacionan a los individuos involucrados y la deduccin de las posibles respuestas a
una determinada consulta.
Es un tipo de paradigma de programacin declarativo. La programacin lgica gira en torno al
concepto de predicado, o relacin entre elementos. Define reglas lgicas para luego, a travs de un
motor de inferencias lgicas, responder preguntas planteadas al sistema y as resolver los
problemas. Ej.: Prolog.

Lic. Torralba Sebastian Pagina 6


Paradigma Orientado a Objetos

La programacin orientada a objetos intenta simular el mundo real a travs del significado de
objetos que contiene caractersticas y funciones. Est basado en la idea de encapsular estado y
operaciones en objetos. En general, la programacin se resuelve comunicando dichos objetos a
travs de mensajes. Su principal ventaja es la reutilizacin de cdigo y su facilidad para pensar
soluciones a determinados problemas.
El lenguaje de programacin elegido para trabajar es Java, que pertenece al paradigma orientado
a objetos, el cual desarrollaremos ms adelante en este apunte.

Tipos de Lenguajes de Programacin

Para conocer un poco ms sobre los lenguajes de programacin analizaremos algunas


clasificaciones posibles:

Lic. Torralba Sebastian Pagina 7


Nivel de Abstraccin del Procesador
Segn el nivel de abstraccin del procesador, los lenguajes de programacin, se clasifican en:

Bajo Nivel

Segn Nivel de
Abstraccin del Medio Nivel
Procesador

Alto Nivel

Lenguajes de Bajo Nivel

Es el que proporciona poca o ninguna abstraccin del microprocesador de un ordenador.


Consecuentemente es fcilmente trasladado a lenguaje de mquina. En general se utiliza este tipo
de lenguaje para programar controladores (drivers).
Son aquellos utilizados fundamentalmente para controlar el hardware del ordenador y dependen
totalmente de la mquina y no se pueden utilizar en otras mquinas. Estn orientados
exclusivamente para la mquina Estos lenguajes son los que ordenan a la mquina operaciones
fundamentales para que pueda funcionar. Utiliza bsicamente ceros, unos y abreviaturas de letras.
Estos lenguajes tambin se llaman de cdigo mquina. Son los ms complicados, pero slo los usan
prcticamente los creadores de las mquinas.
Estos lenguajes tienen mayor adaptacin al hardware y obtienen la mxima velocidad con mnimo
uso de memoria. Como desventajas, estos lenguajes no pueden escribir cdigo independiente de
la mquina, son ms difciles de utilizar y comprender, exigen mayor esfuerzo a los programadores,
quienes deben manejar ms de un centenar de instrucciones y conocer en detalle la arquitectura de
la mquina.

Lenguajes de Alto Nivel

Estos lenguajes se caracterizan por expresar los algoritmos de una manera adecuada a la capacidad
cognitiva humana, en lugar de a la capacidad ejecutora de las mquinas. En los primeros lenguajes
de alto nivel la limitacin era que se orientaban a un rea especfica y sus instrucciones requeran
de una sintaxis predefinida. Se clasifican como lenguajes procedimentales.
Otra limitacin de los lenguajes de alto nivel es que se requiere de ciertos conocimientos de
programacin para realizar las secuencias de instrucciones lgicas.

Lic. Torralba Sebastian Pagina 8


Los lenguajes de muy alto nivel se crearon para que el usuario comn pudiese solucionar tal
problema de procesamiento de datos de una manera ms fcil y rpida.

La diferencia fundamental se puede explicar con el siguiente ejemplo:


En un lenguaje de alto nivel slo tengo que poner sqt(x), que sera una funcin predeterminada,
calcular el cuadrado de x.
Si fuera de bajo nivel, yo mismo tendra que crear la funcin sabiendo cmo funciona el cuadrado
de un nmero:
cuadrado(x) = x * x

Lenguajes de Medio Nivel

Es un lenguaje de programacin informtica, hibrido, como el lenguaje C, que se encuentran entre


los lenguajes de alto nivel y los lenguajes de bajo nivel.
Suelen ser clasificados muchas veces de alto nivel, pero permiten ciertos manejos de bajo nivel.
Son precisos para ciertas aplicaciones como la creacin de sistemas operativos, ya que permiten un
manejo abstracto (independiente de la mquina, a diferencia del ensamblador), pero sin perder
mucho del poder y eficiencia que tienen los lenguajes de bajo nivel.
Una caracterstica distintiva, por ejemplo, que convierte a C en un lenguaje de medio nivel es que
es posible manejar las letras como si fueran nmeros.
Una de las caractersticas ms peculiares del lenguaje de programacin C, es el uso de "punteros",
los cuales son muy tiles en la implementacin de algoritmos como Listas ligadas, Tablas Hash y
algoritmos de bsqueda y ordenamiento.

Paradigma de Programacin
Segn el Paradigma de Programacin, los lenguajes se clasifican en:

Lic. Torralba Sebastian Pagina 9


Imperativo

Declarativo

Estructurado
Segn el Paradigma de
Programacin
Orientado a
Objetos

Funcional

Lgico

La descripcin de cada uno de los paradigmas tiene una seccin especfica, ms adelante en este
material.

Forma de Ejecucin
Segn la Forma de Ejecucin, los lenguajes de programacin, se clasifican en:

Compilados
Segn la Forma
de Ejecucin
Interpretados

Lenguajes Compilados

Los compiladores son aquellos programas cuya funcin es traducir un programa escrito en un
determinado lenguaje a un idioma que la computadora entienda (lenguaje mquina con cdigo
binario).
Al usar un lenguaje compilado, el programa desarrollado es controlado previamente, por el
compilador, y por eso nunca se ejecuta si tiene errores de cdigo. Es decir, se compila y si la
compilacin es exitosa ese programa se puede ejecutar.

Lic. Torralba Sebastian Pagina 10


Un programa compilado es aquel cuyo cdigo fuente, escrito en un lenguaje de alto nivel, es
traducido por un compilador a un archivo ejecutable entendible para la mquina en determinada
plataforma. Con ese archivo se puede ejecutar el programa cuantas veces sea necesario sin tener
que repetir el proceso por lo que el tiempo de espera entre ejecucin y ejecucin es nfimo.
Dentro de los lenguajes de programacin que son compilados tenemos la familia C que incluye a
C++, Objective C, C# y tambin otros como Fortran, Pascal, Haskell y Visual Basic.
Java es un caso particular ya que hace uso de una mquina virtual que se encarga de la traduccin
del cdigo fuente por lo que hay veces que es denominado compilado e interpretado. Otra ventaja
de la mquina virtual que usa Java, es que le permite ejecutar cdigo Java en cualquier mquina
que tenga instalada la JVM (Java Virtual Machine).

Lenguajes Interpretados

Bsicamente un lenguaje interpretado es aquel en el cual sus instrucciones o ms bien el cdigo


fuente, escrito por el programador en un lenguaje de alto nivel, es traducido por el intrprete a un
lenguaje entendible para la mquina paso a paso, instruccin por instruccin. El proceso se repite
cada vez que se ejecuta el programa el cdigo en cuestin.
Estos lenguajes utilizan una alternativa diferente de los compiladores para traducir lenguajes de
alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el cdigo objeto
que se produce durante la corrida de compilacin para utilizarlo en una corrida
de produccin futura, el programador slo carga el programa fuente en la computadora junto con
los datos que se van a procesar. A continuacin, un programa intrprete, almacenado en el
sistema operativo del disco, o incluido de manera permanente dentro de la mquina, convierte
cada proposicin del programa fuente en lenguaje de mquina conforme vaya siendo necesario
durante el proceso de los datos. No se graba el cdigo objeto para utilizarlo posteriormente

El uso de los lenguajes interpretados ha venido en crecimiento y cuyos mximos representantes


son los lenguajes usados para el desarrollo web entre estos Ruby, Python, PHP, JavaScript y otros
como Perl, Smalltalk, MATLAB, Mathematica.
Los lenguajes interpretados permiten el tipado dinmico de datos, es decir, no es necesario
inicializar una variable con determinado tipo de dato, sino que esta puede cambiar su tipo en
condicin al dato que almacene entre otras caractersticas ms.
Tambin tienen por ventaja una gran independencia de la plataforma donde se ejecutan de ah que
los tres primeros mencionados arriba sean multiplataforma comparndolos con algunos lenguajes
compilados como Visual Basic, y los programas escritos en lenguajes interpretados utilizan menos
recursos de hardware (ms livianos).
La principal desventaja de estos lenguajes es el tiempo que necesitan para ser interpretados. Al
tener que ser traducido a lenguaje mquina con cada ejecucin, este proceso es ms lento que en
los lenguajes compilados; sin embargo, algunos lenguajes poseen una mquina virtual que hace
una traduccin a lenguaje intermedio con lo cual el traducirlo a lenguaje de bajo nivel toma menos
tiempo.

Lic. Torralba Sebastian Pagina 11


Lic. Torralba Sebastian Pagina 12

Das könnte Ihnen auch gefallen