Академический Документы
Профессиональный Документы
Культура Документы
ResumenEn este artculo se muestran un resumen del captulo uno del libro Concepts of Programming Languages del autor
Robert W. Sebesta.
KeywordsResumen, Captulo 1.
I.
I-A.
El anlisis y estudio sistemtico de los lenguajes de programacin, a la larga, predispone al crecimiento de nuestro bagaje
en el rea.
I-D. Entendimiento mejorado del significado de la implementacin
Es importante poder reconocer las relaciones y detalles
entre las implementaciones posibles de ciertos aspectos, y el
concepto a nivel de diseo estructural detrs de estos.
I-E.
Finalmente, es obvio que la nica forma de seguir extendiendo las fronteras del rea, es a travs del constante estudio de los
lenguajes de programacin, para as mejorar las condiciones
actuales y/o generar nuevos conocimientos.
son denominados imperativos. En un ordenador de Von Neumann, tanto los datos como programas son almacenados en
la misma memoria. La unidad central (la CPU), que ejecuta
instrucciones, es separada de la memoria. Por lo tanto, las
instrucciones y datos deben ser transmitidos de la memoria a
la CPU. La ejecucin de un programa de cdigo de mquina
sobre un ordenador de arquitectura de Von Neumann ocurre
en un proceso llamado ciclo de traer-ejecutar. La direccin
de la siguiente instruccin para ser ejecutada es mantenida en
un registro llamado el contador de programa. Un Lenguaje
funcional, o aplicativo, es aqul en el cual el medio primario
de cmputo aplica funciones a parmetros dados. El programa
puede estar hecho en un lenguaje funcional sin la clase de
las variables que son usadas en lenguajes imperativos, sin
declaraciones de asignacin, y sin la iteracin. John Backus
(1978), es el diseador principal de la versin original de
Fortran.
IV-B. Metodologas de Diseo de Programa
Finales de los aos 1960 y a principios de los aos 1970
trajo consigo un anlisis intenso, comenzado en gran parte por
el movimiento de programacin-estructurada tanto del proceso
de desarrollo de software como del diseo de los lenguajes de
programacin. Una razn importante de esta investigacin era
el cambio en el coste del hardware al software, como los gastos
de hardware se disminuyeron y los gastos de programador
aumentaron. Los aumentos de la productividad de programador
eran relativamente pequeos. Adems, problemas cada vez
ms grandes y ms complejos estaban siendo solucionados
por ordenadores. Las carencias de lenguaje de programacin
primarias que fueron descubiertas eran la falta de comprobacin de tipo e insuficiencia de declaraciones de control. La
abstraccin de datos para su uso eficaz en el diseo de un
sistema de software, debe ser apoyado por los lenguajes usados
para la implementacin. El primer lenguaje que proporcion el
apoyo an limitado a la abstraccin de datos era SIMULA 67.
La evolucin de desarrollo de software orientado por datos, que
comenz a principios de los aos 1980, es el diseo orientado
a objetos. La metodologa orientada a objetos comienza con la
abstraccin de datos, que encapsula el tratamiento con objetos
de datos y controla el acceso a datos, y aade la herencia y
la encapsulacin dinmica de mtodo. Todas estas evoluciones
que intervinieron en las metodologas de desarrollo de software
condujeron a nuevos lenguajes para apoyarlos.
V. C ATEGORAS DE L ENGUAJES
Los lenguajes de programacin a menudo son clasificados
en cuatro categoras: imperativo, funcional, lgico, y orientado
a objeto. Aunque el paradigma de desarrollo de software orientado a objetos se diferencie considerablemente del paradigma
orientado a procedimiento por lo general son usados como
lenguajes imperativos. Otra clase de lenguaje, el lenguaje
visual, es una subcategora de los lenguajes imperativos. Los
lenguajes visuales ms populares son los lenguajes .NET. Estos
lenguajes incluyen capacidades a la generacin de rastra-y-gota
de segmentos de cdigo. Los lenguajes visuales proporcionan
un modo simple de generar interfaces de usuario grficos a
Los criterios de evaluacin de lenguaje de programacin proporcionan un marco para el diseo de lenguajes.
Lamentablemente, aquel marco es contradictorio. En su papel
sobre el diseo de lenguaje, Hoare (1973) declar que " hay
tantos criterios importantes pero contrarios, que su conciliacin
y satisfaccin son una la tarea de la ingeniera. " Dos criterios
que crean el conflicto son la fiabilidad y costo de ejecucin.
El conflicto entre facilidad de escritura y fiabilidad es comn
en el diseo de lenguaje. Los indicadores de C ++ pueden
ser manipulados de muchas maneras, que apoya la direccin
sumamente flexible de datos. A causa de los problemas de
fiabilidad potenciales con indicadores, ellos no son incluidos
en Java. Los ejemplos de conflictos entre el diseo de lenguaje
y criterios abundan; unos son sutiles, los otros son obvios.
Es por tanto claro que la tarea de escoger el diseo un
lenguaje de programacin requiere muchos compromisos y
compensaciones.
VII. M TODOS DE IMPLEMENTACIN
Las computadoras que usamos todos los das tienen dos
partes importantes, la memoria principal RAM y el procesador
central. La cuestin reside en que los procesadores tienen un
conjunto de instrucciones que pueden interpretar, se llaman
macroinstrucciones al conjunto con el que uno normalmente
usa pero en algunos casos este conjunto de instrucciones
es traducido a un nivel an ms bajo de instrucciones que
se conoce como microinstrucciones, un grupo incluso ms
pequeo y bsico de instrucciones que las macroinstrucciones.
Los lenguajes de programacin deben tener interfaces para
convertir sus sentencias en instrucciones que el procesador
pueda entender, aunque lo ms normal es que se desarrollen
unos programas base que sirven de interface a los lenguajes
de programacin, estos programas constituyen el sistema operativo que es el que trata directamente con el hardware de la
computadora. Esto permite tener varios entornos de desarrollo
en una sola computadora. Con el sistema operativo y sus
herramientas adecuadas uno puede trabajar sobre la misma
Compilacin
Interpretacin Pura
Existen sistemas son una mezcla entre los lenguajes compilados y los puramente interpretados, lo que hacen es traducir
los lenguajes de alto nivel hasta un cdigo intermedio que
sea ms fcil de interpretar. Este mtodo es ms rpido
que los lenguajes interpretados puros. El proceso era as, el
cdigo fuente era la entrada para el analizador lxico, este
entregaba unidades lxicas al analizador sintctico creaba las
informacin para los parse trees, estas estructuras son luego
utilizadas por el generador de cdigo intermedio para por
ltimo interpretar el cdigo intermedio en el intrprete. El
lenguaje Perl es implementado como un sistema hbrido, se
traduce para encontrar errores y para simplificar el intrprete.
Implementaciones iniciales de Java eran hbridas, el cdigo
intermedio o byte code provea portabilidad ya que cualquier
mquina que tenga el intrprete de de byte code y el sistema
de ejecucin asociado poda correr ese cdigo intermedio. El
interprete y el sistema de ejecucin se conocen como JVM o
Java Virtual Machine. Ahora existen sistemas que convierten el
byte code en cdigo de mquina para su ejecucin, esta implementacin se conoce como Justo a tiempo(Just-In-Time). Estos
sistemas JIT traducen el cdigo fuente a cdigo intermedio,
luego al ejecutar el cdigo lo que hace es compilar mtodos
de lenguaje intermedio en cdigo de mquina a medida que
son llamados y estas versiones de cdigo de mquina son almacenadas para futuros usos. Actualmente todos los programas
de Java utilizan sistemas JIT, adems de los lenguajes .NET.
A veces un implementador de un lenguaje provee los dos
mtodos, compilacin e interpretacin. Se utiliza el intrprete
para procesos de desarrollo y depuracin hasta alcanzar un
estado en el que no se encuentran errores en el cdigo y ah
compilarlo para aumentar su velocidad de ejecucin.
VII-D.
Preprocesadores
El preprocesador es un programa que se ejecuta inmediatamente antes que el programa compilador, y su funcin es
expandir las macros que se encuentren en el cdigo fuente.