Date post: | 02-Feb-2016 |
Category: |
Documents |
Upload: | julian-carrasco-vera |
View: | 215 times |
Download: | 0 times |
INSTITUTO TECNOLOGICO DE MINATITLAN
Alumno Moiseacutes graillet caacuterdenas
Profe Joseacute Aacutengel Toledo Aacutelvarez
Materia Fundamentos De Programacioacuten
Tema Caracteriacutesticas Del Lenguaje De Programacioacuten
Lenguaje de programacioacuten Java Java es un lenguaje de programacioacuten orientado a objetos desarrollado por
Sun Microsystems a principios de los antildeos 90 El lenguaje en siacute mismo toma mucha de su sintaxis de C y C++ pero tiene un modelo de objetos maacutes simple y elimina herramientas de bajo nivel que suelen inducir a muchos errores como la manipulacioacuten directa de punteros o memoria
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible
La implementacioacuten original y de referencia del compilador la maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Entre noviembre de 2006 y mayo de 2007 Sun Microsystems liberoacute la mayor parte de sus tecnologiacuteas Java bajo la licencia GNU GPL de acuerdo con las especificaciones del Java Community Process de tal forma que praacutecticamente todo el Java de Sun es ahora software libre (aunque la biblioteca de clases de Sun que se requiere para ejecutar los programas Java auacuten no lo es)
Historia La tecnologiacutea Java se creoacute como una herramienta de programacioacuten para ser usada en un proyecto de
set-top-box en una pequentildea operacioacuten denominada the Green Project en Sun Microsystems en el antildeo 1991 El equipo (Green Team) compuesto por trece personas y dirigido por James Gosling trabajoacute durante 18 meses en Sand Hill Road en Menlo Park en su desarrollo
El lenguaje se denominoacute inicialmente Oak (por un roble que habiacutea fuera de la oficina de Gosling) luego pasoacute a denominarse Green tras descubrir que Oak era ya una marca comercial registrada para adaptadores de tarjetas graacuteficas y finalmente se renombroacute a Java
El teacutermino Java fue acuntildeado en una cafeteriacutea frecuentada por algunos de los miembros del equipo Pero no estaacute claro si es un acroacutenimo o no aunque algunas fuentes sentildealan que podriacutea tratarse de las iniciales de sus creadores James Gosling Arthur Van Hoff y Andy Bechtolsheim Otros abogan por el siguiente acroacutenimo Just Another Vague Acronym (soacutelo otro acroacutenimo ambiguo maacutes) La hipoacutetesis que maacutes fuerza tiene es la que Java debe su nombre a un tipo de cafeacute disponible en la cafeteriacutea cercana de ahiacute que el icono de java sea una taza de cafe caliente Un pequentildeo signo que da fuerza a esta teoriacutea es que los 4 primeros bytes (el nuacutemero maacutegico) de los archivos class que genera el compilador son en hexadecimal 0xCAFEBABE Otros simplemente dicen que el nombre fue sacado al parecer de una lista aleatoria de palabras
Los objetivos de Gosling eran implementar una maacutequina virtual y un lenguaje con una estructura y sintaxis similar a C++ Entre junio y julio de 1994 tras una sesioacuten maratoniana de tres diacuteas entre John Gaga James Gosling Joy Naughton Wayne Rosing y Eric Schmidt el equipo reorientoacute la plataforma hacia la Web Sintieron que la llegada del navegador web Mosaic propiciariacutea que Internet se convirtiese en un medio interactivo como el que pensaban era la televisioacuten por cable Naughton creoacute entonces un prototipo de navegador WebRunner que maacutes tarde seriacutea conocido como HotJava
En 1994 se les hizo una demostracioacuten de HotJava y la plataforma Java a los ejecutivos de Sun Java 10a pudo descargarse por primera vez en 1994 pero hubo que esperar al 23 de mayo de 1995 durante las conferencias de SunWorld a que vieran la luz puacuteblica Java y HotJava el navegador Web El acontecimiento fue anunciado por John Gage el Director Cientiacutefico de Sun Microsystems El acto estuvo acompantildeado por una pequentildea sorpresa adicional el anuncio por parte de Marc Andreessen Vicepresidente Ejecutivo de Netscape de que Java seriacutea soportado en sus navegadores El 9 de enero del antildeo siguiente 1996 Sun fundoacute el grupo empresarial JavaSoft para que se encargase del desarrollo tecnoloacutegico [1] Dos semanas maacutes tarde la primera versioacuten de Java fue publicada
La promesa inicial de Gosling era Write Once Run Anywhere (Escriacutebelo una vez ejecuacutetalo en cualquier lugar) proporcionando un lenguaje independiente de la plataforma y un entorno de ejecucioacuten (la JVM) ligero y gratuito para las plataformas maacutes populares de forma que los binarios (bytecode) de las aplicaciones Java pudiesen ejecutarse en cualquier plataforma
El entorno de ejecucioacuten era relativamente seguro y los principales navegadores web pronto incorporaron la posibilidad de ejecutar applets Java incrustadas en las paacuteginas web
Java ha experimentado numerosos cambios desde la versioacuten primigenia JDK 10 asiacute como un enorme incremento en el nuacutemero de clases y paquetes que componen la biblioteca estaacutendar
El lenguaje para la programacioacuten en Java es un lenguaje orientado a objeto de una plataforma independiente
El lenguaje para la programacioacuten en Java fue desarrollado por la compantildeiacutea Sun Microsystems con la idea original de usarlo para la creacioacuten de paginas WEB
Esta programacioacuten Java tiene muchas similitudes con el lenguaje C y C++ asiacute que si se tiene conocimiento de este lenguaje el aprendizaje de la programacioacuten Java seraacute de faacutecil comprensioacuten por un programador que haya realizado programas en estos lenguajes
Con la programacioacuten en Java se pueden realizar distintos aplicativos como son applets que son aplicaciones especiales que se ejecutan dentro de un navegador al ser cargada una pagina HTML en un servidor WEB Por lo general los applets son programas pequentildeos y de propoacutesitos especiacuteficos
Otra de las utilidades de la programacioacuten en Java es el desarrollo de aplicaciones que son programas que se ejecutan en forma independiente es decir con la programacioacuten Java se pueden realizar aplicaciones como un procesador de palabras una hoja que sirva para caacutelculos una aplicacioacuten grafica etc en resumen cualquier tipo de aplicacioacuten se puede realizar con ella Java permite la modularidad por lo que se pueden hacer rutinas individuales que sean usadas por maacutes de una aplicacioacuten por ejemplo tenemos una rutina de impresioacuten que puede servir para el procesador de palabras como para la hoja de calculo
La programacioacuten en Java permite el desarrollo de aplicaciones bajo el esquema de Cliente Servidor como de aplicaciones distribuidas lo que lo hace capaz de conectar dos o maacutes computadoras u ordenadores ejecutando tareas simultaacuteneamente y de esta forma logra distribuir el trabajo a realizar
El anaacutelisis es la base de la programacioacuten estructurada es decir la descomposicioacuten de una tarea en tareas maacutes pequentildeas Un programa no es otra cosa que una coleccioacuten de funciones que son llamadas sucesivamente por la funcioacuten principal y uacutenica del programa Cada funcioacuten tiene sus propias variables es un moacutedulo independiente La Programacioacuten Orientada a Objetos es el siguiente paso en la evolucioacuten de los lenguajes de programacioacuten que combina funciones y datos en una unidad auto consistente denominada clase
La creacioacuten de interfaces graacuteficos como el Windows de Microsoft es uno de los ejemplos maacutes claros de las ventajas que tiene la programacioacuten orientada a objetos sobre la programacioacuten estructurada Las libreriacuteas nos proporcionan clases que describen el aspecto y la conducta de elementos como la ventana el diaacutelogo los controles etc Derivando una clase de otra base estamos utilizando el coacutedigo de la clase base para nuestras propias necesidades y le antildeadimos el coacutedigo que implementa la conducta especiacutefica
Un lenguaje de Programacioacuten Orientada a Objetos nos permite organizar el coacutedigo en entidades como las clases compuestas de datos y funciones y a traveacutes de la caracteriacutestica de la herencia podemos organizar las clases en jerarquiacuteas
Aunque la Programacioacuten Orientada a Objetos es la manera maacutes natural de programar aclimatarse a su ambiente requiere cierto tiempo no se producen resultados inmediatos Los numerosos ejemplos que se comentaraacuten a lo largo de las siguientes paacuteginas trataraacuten de ayudar a efectuar dicha transicioacuten de un modo suave y ordenado Una vez aclimatado sentiraacute por siacute mismo la necesidad de organizar el coacutedigo en clases y posteriormente si lo requiere el problema establecer jerarquiacuteas entre dichas clases
A traveacutes de estas paacuteginas pretendemos mostrar la potencia y elegancia de la programacioacuten en lenguaje Java en dos situaciones concretas en la creacioacuten de interfaces graacuteficas avanzadas (applets) y en la resolucioacuten de problemas numeacutericos
Se pondraacute especial eacutenfasis en la Programacioacuten Orientada a Objetos que es la parte que los no iniciados encuentran maacutes difiacutecil Aprender a extraer las propiedades y el comportamiento comunes a un determinado tipo de objetos y transformarlas en la definicioacuten de una clase estructurar las clases en jerarquiacuteas constituyen procesos de abstracccioacuten que implican un cambio de mentalidad en la resolucioacuten de los problemas de software que precisan de entrenamiento y de un esfuerzo intenso
El objetivo es el de ensentildear al lector a traducir la descripcioacuten de un problema o situacioacuten que se plantea a coacutedigo a organizar el coacutedigo en funciones a agrupar datos y funciones en clases y las clases en jerarquiacuteas
Una vez entendidos los conceptos baacutesicos la creacioacuten de applets no presentaraacute grandes dificultades si se hace con la ayuda de un Entorno Integrado de Desarrollo como JBuilder de Borland (ahora Inprise) el cual genera casi todo el coacutedigo correspondiente al interfaz dejando al programador la tarea de darle funcionalidad es decir la de definir la respuesta a las distintas acciones
PARADIGMAS DE PROGRAMACIOacuteN Un paradigma de programacioacuten es un modelo baacutesico de disentildeo y desarrollo de programas que permite producir programas con unas directrices especiacuteficas tales como estructura modular fuerte cohesioacuten alta rentabilidad etc Los paradigmas pueden ser considerados como patrones de pensamiento para la resolucioacuten de problemas Desde luego siempre teniendo en cuenta los lenguajes de programacioacuten seguacuten nuestro intereacutes de estudio No es mejor uno que otro sino que cada uno tiene ventajas y desventajas Tambieacuten
hay situaciones donde un paradigma resulta maacutes apropiado que otro Hay multitud de ellos atendiendo a alguna particularidad metodoloacutegica o funcional Cuando un lenguaje refleja bien un paradigma particular se dice que soporta el paradigma y en la praacutectica un lenguaje que soporta correctamente un paradigma es difiacutecil distinguirlo del propio paradigma por lo que se identifica con eacutel
Tipos de paradigmas de programacioacuten Podemos clasificar los paradigmas de programacioacuten en Paradigma imperativo heuristico concurrente funcional loacutegico paradigma basado en objetos
Paradigma imperativo Son aquellos que facilitan los caacutelculos por medio de cambios de estado entendiendo como estado la condicioacuten de una memoria de almacenamiento Los lenguajes
estructurados en bloques se refieren a los aacutembitos anidados es decir los bloques pueden estar anidados dentro de otros bloques y contener sus propias variables Los programas escritos en un lenguaje funcional estaacuten constituidos uacutenicamente por definiciones de funciones entendiendo eacutestas no como subprogramas claacutesicos de un lenguaje imperativo sino como funciones puramente matemaacuteticas en las que se verifican ciertas propiedades como la transparencia referencial (el significado de una expresioacuten depende uacutenicamente del significado de sus subexpresiones) y por tanto la carencia total de efectos laterales El objetivo es conseguir lenguajes expresivos y matemaacuteticamente elegantes en
los que no sea necesario bajar al nivel de la maacutequina para describir el proceso llevado a cabo por el programa y evitando el concepto de estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programa se regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otras cada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas A este tipo de paradigma de programacioacuten se le suele llamar algoriacutetmico Otras caracteriacutesticas propias de estos lenguajes son la no existencia de
asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteracioacuten (lo que obliga en la praacutectica a que todas las repeticiones de instrucciones
se lleven a cabo por medio de funciones recursivas)
Algunos de los lenguajes imperativos son bull C bull C++ bull C bull Basic bull Java bull Perl Paradigma heuristico Define un modelo de resolucioacuten de problemas en el que se incorpora alguacuten componente heuriacutestico sobre la base de una representacioacuten maacutes apropiada de la estructura del problema para su resolucioacuten con teacutecnicas heuriacutesticas Se puede definir como aquel tipo de programacioacuten computacional que aplica para la resolucioacuten de problemas reglas de buena loacutegica (reglas del pulgar) denominadas heuriacutesticas las cuales proporcionan entre varios cursos de accioacuten uno que presenta visos de ser el maacutes prometedor pero no garantiza necesariamente el curso de accioacuten maacutes efectivo La Programacioacuten Heuriacutestica implica una forma de modelizar el problema en lo que respecta a la representacioacuten de su estructura estrategias de buacutesqueda y meacutetodos de resolucioacuten que configuran el Para
Este tipo de programacioacuten se aplica con mayor intensidad en el campo de la
Inteligencia Artificial (IA) y en especial en el de la Ingenieriacutea del
Conocimientodigma Heuriacutestico
La Programacioacuten Heuriacutestica se presenta y utiliza desde diferentes puntos de vista
o Como teacutecnica de buacutesqueda para la obtencioacuten de metas en problemas no
algoriacutetmicos o con algoritmos que generan explosioacuten combinatoria
o Como un meacutetodo aproximado de resolucioacuten de problemas utilizando
funciones de evaluacioacuten de tipo heuriacutestico
o Como meacutetodo de poda para estrategias de programas que juegan aunque
estos meacutetodos no son realmente heuriacutesticos
Paradigma funcional
Sus oriacutegenes provienen del Caacutelculo Lambda (o λ-caacutelculo) una teoriacutea matemaacutetica
elaborada por Alonzo Church como apoyo a sus estudios sobre computabilidad Un
lenguaje funcional es a grandes rasgos un azuacutecar sintaacutectico del Caacutelculo Lambda
El paradigma funcional estaacute basado en el modelo matemaacutetico de composicioacuten funcional En este modelo el resultado de un caacutelculo es la entrada del siguiente y asiacute sucesivamente hasta que una composicioacuten produce el valor deseado No existe el concepto de celda de memoria que es asignada o modificada Maacutes
bien existen valores intermedios que son el resultado de caacutelculos anteriores y las
entradas a caacutelculos subsiguientes Tampoco existen sentencias imperativas y todas las funciones tienen transparencia referencial La programacioacuten funcional incorpora el concepto de funcioacuten como objeto de primera clase lo que significa que las funciones se pueden tratar como datos (pueden pasar como paraacutemetros calculadas y devueltas como valores normales y mezcladas en el caacutelculo con otras formas de datos) En este paradigma el informaacutetico concibe la solucioacuten como una composicioacuten de funciones La forma en que se especifican las funciones puede variar Se pueden especificar procedimentalmente o matemaacuteticamente mediante su definicioacuten sin secuencia de control Un lenguaje funcional es el Lisp
Paradigma loacutegico La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de lenguaje loacutegico es Prolog (Programacioacuten loacutegica) Prolog proveniente del ingleacutes Programming in Logic es un lenguaje loacutegico bastante popular en el medio de investigacioacuten en Inteligencia Artificial Prolog es un lenguaje muy diferente tanto de los imperativos como Fortran Pascal C etc como de los funcionales como Lisp En todos los mencionados las instrucciones se ejecutan normalmente en orden secuencial es decir una a continuacioacuten de otra en el mismo orden en que estaacuten escritas que soacutelo variacutea cuando se alcanza una instruccioacuten de control (un bucle una instruccioacuten condicional o una transferencia) En Prolog las cosas son distintas el orden de ejecucioacuten de las instrucciones no tiene nada que ver con el orden en que fueron escritas Tampoco hay instrucciones de control propiamente dichas Para trabajar con este lenguaje un programador debe acostumbrarse a pensar de una manera muy diferente a la que se utiliza en los lenguajes claacutesicos
Paradigma basado en objetos
La programacioacuten orientada a objetos (OOP por las siglas inglesas de Object- Oriented Programming) es una forma de programar que proliferoacute a partir de los antildeos ochenta La Programacioacuten Orientada a Objetos (POO u OOP seguacuten siglas en ingleacutes) es un paradigma de programacioacuten que define los programas en teacuterminos de clases de objetos objetos que son entidades que combinan estado (es decir datos) comportamiento (esto es procedimientos o meacutetodos) e identidad (propiedad del objeto que lo diferencia del resto) La programacioacuten orientada a objetos expresa un programa como un conjunto de estos objetos que colaboran entre ellos para realizar tareas Esto permite hacer los programas y moacutedulos maacutes faacuteciles de escribir mantener y reutilizar De esta forma un objeto contiene toda la informacioacuten (los denominados atributos) que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de una misma clase al poder tener valores bien diferenciados en sus atributos)
CLASIFICACIONES DE LENGUAJES DE PROGARMACIOacuteN
Lenguaje maacutequina El lenguaje maacutequina es el uacutenico que entiende directamente la computadora utiliza el alfabeto binario que consta de los dos uacutenicos siacutembolos 0 y 1 denominados bits (abreviatura inglesa de diacutegitos binarios) Fue el primer lenguaje utilizado en la programacioacuten de computadoras pero dejoacute de utilizarse por su dificultad y
complicacioacuten siendo sustituido por otros lenguajes maacutes faacuteciles de aprender y utilizar que ademaacutes reducen la posibilidad de cometer errores Lenguaje de bajo nivel Un lenguaje de programacioacuten de bajo nivel es el que proporciona poca o
ninguna abstraccioacuten del microprocesador de un ordenador Consecuentemente es faacutecilmente trasladado a lenguaje de maacutequinaEn general se utiliza este tipo de lenguaje para programar controladores (drivers) La programacioacuten en un lenguaje de bajo nivel como el lenguaje de la maacutequina o el lenguaje simboacutelico tiene ciertas ventajas 1 Mayor adaptacioacuten al equipo 2 Posibilidad de obtener la maacutexima velocidad con miacutenimo uso de memoria Pero tambieacuten tiene importantes inconvenientes Imposibilidad de escribir coacutedigo independiente de la maacutequina Mayor dificultad en la programacioacuten y en la comprensioacuten de los programas
Caracteriacutesticas - Se trabaja a nivel de Microinstrucciones es decir su programacioacuten es al
maacutes fino detalle - Estaacute orientado a la maacutequina Lenguaje de alto nivel Los lenguajes de alto nivel logran la independencia del tipo de maacutequina
y se aproximan al lenguaje natural Se puede decir que el principal problema que
presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen
actualmente en uso Los lenguajes de alto nivel tambieacuten denominados lenguajes
evolucionados surgen con posterioridad a los anteriores con los siguientes objetivos entre otros 1048707 Lograr independencia de la maacutequina pudiendo utilizar un mismo
programa en diferentes equipos con la uacutenica condicioacuten de disponer de un programa
traductor o compilador que lo suministra el fabricante para obtener el programa ejecutable en lenguaje binario de la maacutequina que se trate Ademaacutes no
se necesita conocer el hardware especiacutefico de dicha maacutequina
TRADUCTORES
TRADUCTORES Explicamos el proceso maacutes importante a la hora de hacer
funcionar un programa realizado en lenguajes de alto y medio nivel Cuando programamos en lenguajes de alto nivel lo que
estamos haciendo en realidad es el coacutedigo fuente de ese programa Este coacutedigo fuente debe ser traducido a binario para que las
instrucciones que contienen puedan ser entendidas y ejecutadas por la maacutequina Para esto existe un programa encargado de realizar la
traduccioacuten llamado traductor del lenguaje Estos traductores pueden ser de dos tipos Ensambladores
Son los encargados de traducir los programas escritos en lenguaje ensamblador alenguaje maacutequina
Compiladores
Son programas que leen el coacutedigo fuente y lo traducen o convierten a otro lenguajeEstos programas te muestran los errores existentes en el coacutedigo fuente
Etapas del proceso de compilacioacuten
Edicioacuten Esta fase consiste en escribir el programa empleando alguacuten lenguaje y un
editor Como resultado nos daraacute el coacutedigo fuente de nuestro programa
Compilacioacuten En esta fase se traduce el coacutedigo fuente obtenido en la fase anterior a
coacutedigo maacutequina Si no se produce ninguacuten error se obtiene el coacutedigo objeto En caso derrores el compilador los mostrariacutea para ayudarnos a corregirlos y se procederiacutea a su
compilacioacuten de nuevo una vez corregidos
Linkado Esta fase consiste en unir el archivo generado en la fase dos con determinadas
rutinas internas del lenguaje obteniendo el programa ejecutable
Existen dos tipos de linkados
linkado estaacutetico Los binarios de las libreriacuteas se antildeaden a nuestros binarios compilados
generando el archivo ejecutable
Linkado dinaacutemico no se antildeaden las libreriacuteas a nuestro binario sino que haraacute que se
carguen en memoria las libreriacuteas que en ese momento se necesiten
Una vez traducido compilado y linkado el archivo esta listo para su ejecucioacuten donde
tambieacuten podraacuten surgir problemas y fallos para los cuales tendriacuteamos que volver a
realizar todo el proceso anteriormente citado de modo que puedan ser corregidos
Por este motivo es importante realizar numerosas pruebas en tiempo de ejecucioacuten antes
de presentar el programa al cliente
Otro sistema para la ejecucioacuten de nuestro coacutedigo fuente es mediante el uso de
inteacuterpretes (estos no se encontrariacutean dentro de los traductores)
Inteacuterpretes Los inteacuterpretes realizan la traduccioacuten y ejecucioacuten de forma
simultanea es decir un inteacuterprete lee el coacutedigo fuente y lo va ejecutando al mismo
tiempo Las diferencias entre un compilador y un inteacuterprete
baacutesicamente son bull Un programa compilado puede funcionar por si solo
mientras que un coacutedigo traducido por un inteacuterprete no puede funcionar sin eacuteste bull Un programa traducido por un inteacuterprete puede ser
ejecutado en cualquier maacutequina ya que cada vez que se ejecuta el inteacuterprete tiene
que compilarlo bull Un archivo compilado es mucho maacutes raacutepido que uno
interpretado
Anexo Evaluacion
iquest que es la poo
La programacioacuten Orientada a objetos (POO) es una forma especial de programar maacutes cercana a como expresariacuteamos las cosas en la vida real que otros tipos de programacioacuten Con la POO tenemos que aprender a pensar las cosas de una manera distinta para escribir nuestros programas en teacuterminos de objetos propiedades meacutetodos y otras cosas que veremos raacutepidamente para aclarar conceptos y dar una pequentildea base que permita soltarnos un poco con este tipo de programacioacuten
iquest que es programacioacuten
Un lenguaje de programacioacuten es un idioma artificial disentildeado para expresar computaciones que pueden ser llevadas a cabo por maacutequinas como las computadoras Pueden usarse para crear programas que controlen el comportamiento fiacutesico y loacutegico de una maacutequina para expresar algoritmos con precisioacuten o como modo de comunicacioacuten humana Estaacute formado de un conjunto de siacutembolos y reglas sintaacutecticas y semaacutenticas que definen su estructura y el significado de sus elementos y expresiones Al proceso por el cual se escribe se prueba se depura se compila y se mantiene el coacutedigo fuente de un programa informaacutetico se le llama programacioacuten
iquestQueacute es compilador
Un compilador es un programa informaacutetico que traduce un programa escrito en un lenguaje de programacioacuten a otro lenguaje de programacioacuten generando un programa equivalente que la maacutequina seraacute capaz de interpretar Usualmente el segundo lenguaje es lenguaje de maacutequina pero tambieacuten puede ser simplemente texto Este proceso de traduccioacuten se conoce como compilacioacuten
Un compilador es un programa que permite traducir el coacutedigo fuente de un programa en lenguaje de alto nivel a otro lenguaje de nivel inferior (tiacutepicamente lenguaje de maacutequina) De esta manera un programador puede disentildear un programa en un lenguaje mucho maacutes cercano a como piensa un ser humano para luego compilarlo a un programa maacutes manejable por una computadora
menciona una paradigma de programacioacuten
Paradigama logico
La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica
Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por
expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten
interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de
lenguaje loacutegico es Prolog (Programacioacuten loacutegica)
iquest que es lenguaje java La implementacioacuten original y de referencia del compilador la
maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible
Lenguaje de programacioacuten Java Java es un lenguaje de programacioacuten orientado a objetos desarrollado por
Sun Microsystems a principios de los antildeos 90 El lenguaje en siacute mismo toma mucha de su sintaxis de C y C++ pero tiene un modelo de objetos maacutes simple y elimina herramientas de bajo nivel que suelen inducir a muchos errores como la manipulacioacuten directa de punteros o memoria
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible
La implementacioacuten original y de referencia del compilador la maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Entre noviembre de 2006 y mayo de 2007 Sun Microsystems liberoacute la mayor parte de sus tecnologiacuteas Java bajo la licencia GNU GPL de acuerdo con las especificaciones del Java Community Process de tal forma que praacutecticamente todo el Java de Sun es ahora software libre (aunque la biblioteca de clases de Sun que se requiere para ejecutar los programas Java auacuten no lo es)
Historia La tecnologiacutea Java se creoacute como una herramienta de programacioacuten para ser usada en un proyecto de
set-top-box en una pequentildea operacioacuten denominada the Green Project en Sun Microsystems en el antildeo 1991 El equipo (Green Team) compuesto por trece personas y dirigido por James Gosling trabajoacute durante 18 meses en Sand Hill Road en Menlo Park en su desarrollo
El lenguaje se denominoacute inicialmente Oak (por un roble que habiacutea fuera de la oficina de Gosling) luego pasoacute a denominarse Green tras descubrir que Oak era ya una marca comercial registrada para adaptadores de tarjetas graacuteficas y finalmente se renombroacute a Java
El teacutermino Java fue acuntildeado en una cafeteriacutea frecuentada por algunos de los miembros del equipo Pero no estaacute claro si es un acroacutenimo o no aunque algunas fuentes sentildealan que podriacutea tratarse de las iniciales de sus creadores James Gosling Arthur Van Hoff y Andy Bechtolsheim Otros abogan por el siguiente acroacutenimo Just Another Vague Acronym (soacutelo otro acroacutenimo ambiguo maacutes) La hipoacutetesis que maacutes fuerza tiene es la que Java debe su nombre a un tipo de cafeacute disponible en la cafeteriacutea cercana de ahiacute que el icono de java sea una taza de cafe caliente Un pequentildeo signo que da fuerza a esta teoriacutea es que los 4 primeros bytes (el nuacutemero maacutegico) de los archivos class que genera el compilador son en hexadecimal 0xCAFEBABE Otros simplemente dicen que el nombre fue sacado al parecer de una lista aleatoria de palabras
Los objetivos de Gosling eran implementar una maacutequina virtual y un lenguaje con una estructura y sintaxis similar a C++ Entre junio y julio de 1994 tras una sesioacuten maratoniana de tres diacuteas entre John Gaga James Gosling Joy Naughton Wayne Rosing y Eric Schmidt el equipo reorientoacute la plataforma hacia la Web Sintieron que la llegada del navegador web Mosaic propiciariacutea que Internet se convirtiese en un medio interactivo como el que pensaban era la televisioacuten por cable Naughton creoacute entonces un prototipo de navegador WebRunner que maacutes tarde seriacutea conocido como HotJava
En 1994 se les hizo una demostracioacuten de HotJava y la plataforma Java a los ejecutivos de Sun Java 10a pudo descargarse por primera vez en 1994 pero hubo que esperar al 23 de mayo de 1995 durante las conferencias de SunWorld a que vieran la luz puacuteblica Java y HotJava el navegador Web El acontecimiento fue anunciado por John Gage el Director Cientiacutefico de Sun Microsystems El acto estuvo acompantildeado por una pequentildea sorpresa adicional el anuncio por parte de Marc Andreessen Vicepresidente Ejecutivo de Netscape de que Java seriacutea soportado en sus navegadores El 9 de enero del antildeo siguiente 1996 Sun fundoacute el grupo empresarial JavaSoft para que se encargase del desarrollo tecnoloacutegico [1] Dos semanas maacutes tarde la primera versioacuten de Java fue publicada
La promesa inicial de Gosling era Write Once Run Anywhere (Escriacutebelo una vez ejecuacutetalo en cualquier lugar) proporcionando un lenguaje independiente de la plataforma y un entorno de ejecucioacuten (la JVM) ligero y gratuito para las plataformas maacutes populares de forma que los binarios (bytecode) de las aplicaciones Java pudiesen ejecutarse en cualquier plataforma
El entorno de ejecucioacuten era relativamente seguro y los principales navegadores web pronto incorporaron la posibilidad de ejecutar applets Java incrustadas en las paacuteginas web
Java ha experimentado numerosos cambios desde la versioacuten primigenia JDK 10 asiacute como un enorme incremento en el nuacutemero de clases y paquetes que componen la biblioteca estaacutendar
El lenguaje para la programacioacuten en Java es un lenguaje orientado a objeto de una plataforma independiente
El lenguaje para la programacioacuten en Java fue desarrollado por la compantildeiacutea Sun Microsystems con la idea original de usarlo para la creacioacuten de paginas WEB
Esta programacioacuten Java tiene muchas similitudes con el lenguaje C y C++ asiacute que si se tiene conocimiento de este lenguaje el aprendizaje de la programacioacuten Java seraacute de faacutecil comprensioacuten por un programador que haya realizado programas en estos lenguajes
Con la programacioacuten en Java se pueden realizar distintos aplicativos como son applets que son aplicaciones especiales que se ejecutan dentro de un navegador al ser cargada una pagina HTML en un servidor WEB Por lo general los applets son programas pequentildeos y de propoacutesitos especiacuteficos
Otra de las utilidades de la programacioacuten en Java es el desarrollo de aplicaciones que son programas que se ejecutan en forma independiente es decir con la programacioacuten Java se pueden realizar aplicaciones como un procesador de palabras una hoja que sirva para caacutelculos una aplicacioacuten grafica etc en resumen cualquier tipo de aplicacioacuten se puede realizar con ella Java permite la modularidad por lo que se pueden hacer rutinas individuales que sean usadas por maacutes de una aplicacioacuten por ejemplo tenemos una rutina de impresioacuten que puede servir para el procesador de palabras como para la hoja de calculo
La programacioacuten en Java permite el desarrollo de aplicaciones bajo el esquema de Cliente Servidor como de aplicaciones distribuidas lo que lo hace capaz de conectar dos o maacutes computadoras u ordenadores ejecutando tareas simultaacuteneamente y de esta forma logra distribuir el trabajo a realizar
El anaacutelisis es la base de la programacioacuten estructurada es decir la descomposicioacuten de una tarea en tareas maacutes pequentildeas Un programa no es otra cosa que una coleccioacuten de funciones que son llamadas sucesivamente por la funcioacuten principal y uacutenica del programa Cada funcioacuten tiene sus propias variables es un moacutedulo independiente La Programacioacuten Orientada a Objetos es el siguiente paso en la evolucioacuten de los lenguajes de programacioacuten que combina funciones y datos en una unidad auto consistente denominada clase
La creacioacuten de interfaces graacuteficos como el Windows de Microsoft es uno de los ejemplos maacutes claros de las ventajas que tiene la programacioacuten orientada a objetos sobre la programacioacuten estructurada Las libreriacuteas nos proporcionan clases que describen el aspecto y la conducta de elementos como la ventana el diaacutelogo los controles etc Derivando una clase de otra base estamos utilizando el coacutedigo de la clase base para nuestras propias necesidades y le antildeadimos el coacutedigo que implementa la conducta especiacutefica
Un lenguaje de Programacioacuten Orientada a Objetos nos permite organizar el coacutedigo en entidades como las clases compuestas de datos y funciones y a traveacutes de la caracteriacutestica de la herencia podemos organizar las clases en jerarquiacuteas
Aunque la Programacioacuten Orientada a Objetos es la manera maacutes natural de programar aclimatarse a su ambiente requiere cierto tiempo no se producen resultados inmediatos Los numerosos ejemplos que se comentaraacuten a lo largo de las siguientes paacuteginas trataraacuten de ayudar a efectuar dicha transicioacuten de un modo suave y ordenado Una vez aclimatado sentiraacute por siacute mismo la necesidad de organizar el coacutedigo en clases y posteriormente si lo requiere el problema establecer jerarquiacuteas entre dichas clases
A traveacutes de estas paacuteginas pretendemos mostrar la potencia y elegancia de la programacioacuten en lenguaje Java en dos situaciones concretas en la creacioacuten de interfaces graacuteficas avanzadas (applets) y en la resolucioacuten de problemas numeacutericos
Se pondraacute especial eacutenfasis en la Programacioacuten Orientada a Objetos que es la parte que los no iniciados encuentran maacutes difiacutecil Aprender a extraer las propiedades y el comportamiento comunes a un determinado tipo de objetos y transformarlas en la definicioacuten de una clase estructurar las clases en jerarquiacuteas constituyen procesos de abstracccioacuten que implican un cambio de mentalidad en la resolucioacuten de los problemas de software que precisan de entrenamiento y de un esfuerzo intenso
El objetivo es el de ensentildear al lector a traducir la descripcioacuten de un problema o situacioacuten que se plantea a coacutedigo a organizar el coacutedigo en funciones a agrupar datos y funciones en clases y las clases en jerarquiacuteas
Una vez entendidos los conceptos baacutesicos la creacioacuten de applets no presentaraacute grandes dificultades si se hace con la ayuda de un Entorno Integrado de Desarrollo como JBuilder de Borland (ahora Inprise) el cual genera casi todo el coacutedigo correspondiente al interfaz dejando al programador la tarea de darle funcionalidad es decir la de definir la respuesta a las distintas acciones
PARADIGMAS DE PROGRAMACIOacuteN Un paradigma de programacioacuten es un modelo baacutesico de disentildeo y desarrollo de programas que permite producir programas con unas directrices especiacuteficas tales como estructura modular fuerte cohesioacuten alta rentabilidad etc Los paradigmas pueden ser considerados como patrones de pensamiento para la resolucioacuten de problemas Desde luego siempre teniendo en cuenta los lenguajes de programacioacuten seguacuten nuestro intereacutes de estudio No es mejor uno que otro sino que cada uno tiene ventajas y desventajas Tambieacuten
hay situaciones donde un paradigma resulta maacutes apropiado que otro Hay multitud de ellos atendiendo a alguna particularidad metodoloacutegica o funcional Cuando un lenguaje refleja bien un paradigma particular se dice que soporta el paradigma y en la praacutectica un lenguaje que soporta correctamente un paradigma es difiacutecil distinguirlo del propio paradigma por lo que se identifica con eacutel
Tipos de paradigmas de programacioacuten Podemos clasificar los paradigmas de programacioacuten en Paradigma imperativo heuristico concurrente funcional loacutegico paradigma basado en objetos
Paradigma imperativo Son aquellos que facilitan los caacutelculos por medio de cambios de estado entendiendo como estado la condicioacuten de una memoria de almacenamiento Los lenguajes
estructurados en bloques se refieren a los aacutembitos anidados es decir los bloques pueden estar anidados dentro de otros bloques y contener sus propias variables Los programas escritos en un lenguaje funcional estaacuten constituidos uacutenicamente por definiciones de funciones entendiendo eacutestas no como subprogramas claacutesicos de un lenguaje imperativo sino como funciones puramente matemaacuteticas en las que se verifican ciertas propiedades como la transparencia referencial (el significado de una expresioacuten depende uacutenicamente del significado de sus subexpresiones) y por tanto la carencia total de efectos laterales El objetivo es conseguir lenguajes expresivos y matemaacuteticamente elegantes en
los que no sea necesario bajar al nivel de la maacutequina para describir el proceso llevado a cabo por el programa y evitando el concepto de estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programa se regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otras cada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas A este tipo de paradigma de programacioacuten se le suele llamar algoriacutetmico Otras caracteriacutesticas propias de estos lenguajes son la no existencia de
asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteracioacuten (lo que obliga en la praacutectica a que todas las repeticiones de instrucciones
se lleven a cabo por medio de funciones recursivas)
Algunos de los lenguajes imperativos son bull C bull C++ bull C bull Basic bull Java bull Perl Paradigma heuristico Define un modelo de resolucioacuten de problemas en el que se incorpora alguacuten componente heuriacutestico sobre la base de una representacioacuten maacutes apropiada de la estructura del problema para su resolucioacuten con teacutecnicas heuriacutesticas Se puede definir como aquel tipo de programacioacuten computacional que aplica para la resolucioacuten de problemas reglas de buena loacutegica (reglas del pulgar) denominadas heuriacutesticas las cuales proporcionan entre varios cursos de accioacuten uno que presenta visos de ser el maacutes prometedor pero no garantiza necesariamente el curso de accioacuten maacutes efectivo La Programacioacuten Heuriacutestica implica una forma de modelizar el problema en lo que respecta a la representacioacuten de su estructura estrategias de buacutesqueda y meacutetodos de resolucioacuten que configuran el Para
Este tipo de programacioacuten se aplica con mayor intensidad en el campo de la
Inteligencia Artificial (IA) y en especial en el de la Ingenieriacutea del
Conocimientodigma Heuriacutestico
La Programacioacuten Heuriacutestica se presenta y utiliza desde diferentes puntos de vista
o Como teacutecnica de buacutesqueda para la obtencioacuten de metas en problemas no
algoriacutetmicos o con algoritmos que generan explosioacuten combinatoria
o Como un meacutetodo aproximado de resolucioacuten de problemas utilizando
funciones de evaluacioacuten de tipo heuriacutestico
o Como meacutetodo de poda para estrategias de programas que juegan aunque
estos meacutetodos no son realmente heuriacutesticos
Paradigma funcional
Sus oriacutegenes provienen del Caacutelculo Lambda (o λ-caacutelculo) una teoriacutea matemaacutetica
elaborada por Alonzo Church como apoyo a sus estudios sobre computabilidad Un
lenguaje funcional es a grandes rasgos un azuacutecar sintaacutectico del Caacutelculo Lambda
El paradigma funcional estaacute basado en el modelo matemaacutetico de composicioacuten funcional En este modelo el resultado de un caacutelculo es la entrada del siguiente y asiacute sucesivamente hasta que una composicioacuten produce el valor deseado No existe el concepto de celda de memoria que es asignada o modificada Maacutes
bien existen valores intermedios que son el resultado de caacutelculos anteriores y las
entradas a caacutelculos subsiguientes Tampoco existen sentencias imperativas y todas las funciones tienen transparencia referencial La programacioacuten funcional incorpora el concepto de funcioacuten como objeto de primera clase lo que significa que las funciones se pueden tratar como datos (pueden pasar como paraacutemetros calculadas y devueltas como valores normales y mezcladas en el caacutelculo con otras formas de datos) En este paradigma el informaacutetico concibe la solucioacuten como una composicioacuten de funciones La forma en que se especifican las funciones puede variar Se pueden especificar procedimentalmente o matemaacuteticamente mediante su definicioacuten sin secuencia de control Un lenguaje funcional es el Lisp
Paradigma loacutegico La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de lenguaje loacutegico es Prolog (Programacioacuten loacutegica) Prolog proveniente del ingleacutes Programming in Logic es un lenguaje loacutegico bastante popular en el medio de investigacioacuten en Inteligencia Artificial Prolog es un lenguaje muy diferente tanto de los imperativos como Fortran Pascal C etc como de los funcionales como Lisp En todos los mencionados las instrucciones se ejecutan normalmente en orden secuencial es decir una a continuacioacuten de otra en el mismo orden en que estaacuten escritas que soacutelo variacutea cuando se alcanza una instruccioacuten de control (un bucle una instruccioacuten condicional o una transferencia) En Prolog las cosas son distintas el orden de ejecucioacuten de las instrucciones no tiene nada que ver con el orden en que fueron escritas Tampoco hay instrucciones de control propiamente dichas Para trabajar con este lenguaje un programador debe acostumbrarse a pensar de una manera muy diferente a la que se utiliza en los lenguajes claacutesicos
Paradigma basado en objetos
La programacioacuten orientada a objetos (OOP por las siglas inglesas de Object- Oriented Programming) es una forma de programar que proliferoacute a partir de los antildeos ochenta La Programacioacuten Orientada a Objetos (POO u OOP seguacuten siglas en ingleacutes) es un paradigma de programacioacuten que define los programas en teacuterminos de clases de objetos objetos que son entidades que combinan estado (es decir datos) comportamiento (esto es procedimientos o meacutetodos) e identidad (propiedad del objeto que lo diferencia del resto) La programacioacuten orientada a objetos expresa un programa como un conjunto de estos objetos que colaboran entre ellos para realizar tareas Esto permite hacer los programas y moacutedulos maacutes faacuteciles de escribir mantener y reutilizar De esta forma un objeto contiene toda la informacioacuten (los denominados atributos) que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de una misma clase al poder tener valores bien diferenciados en sus atributos)
CLASIFICACIONES DE LENGUAJES DE PROGARMACIOacuteN
Lenguaje maacutequina El lenguaje maacutequina es el uacutenico que entiende directamente la computadora utiliza el alfabeto binario que consta de los dos uacutenicos siacutembolos 0 y 1 denominados bits (abreviatura inglesa de diacutegitos binarios) Fue el primer lenguaje utilizado en la programacioacuten de computadoras pero dejoacute de utilizarse por su dificultad y
complicacioacuten siendo sustituido por otros lenguajes maacutes faacuteciles de aprender y utilizar que ademaacutes reducen la posibilidad de cometer errores Lenguaje de bajo nivel Un lenguaje de programacioacuten de bajo nivel es el que proporciona poca o
ninguna abstraccioacuten del microprocesador de un ordenador Consecuentemente es faacutecilmente trasladado a lenguaje de maacutequinaEn general se utiliza este tipo de lenguaje para programar controladores (drivers) La programacioacuten en un lenguaje de bajo nivel como el lenguaje de la maacutequina o el lenguaje simboacutelico tiene ciertas ventajas 1 Mayor adaptacioacuten al equipo 2 Posibilidad de obtener la maacutexima velocidad con miacutenimo uso de memoria Pero tambieacuten tiene importantes inconvenientes Imposibilidad de escribir coacutedigo independiente de la maacutequina Mayor dificultad en la programacioacuten y en la comprensioacuten de los programas
Caracteriacutesticas - Se trabaja a nivel de Microinstrucciones es decir su programacioacuten es al
maacutes fino detalle - Estaacute orientado a la maacutequina Lenguaje de alto nivel Los lenguajes de alto nivel logran la independencia del tipo de maacutequina
y se aproximan al lenguaje natural Se puede decir que el principal problema que
presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen
actualmente en uso Los lenguajes de alto nivel tambieacuten denominados lenguajes
evolucionados surgen con posterioridad a los anteriores con los siguientes objetivos entre otros 1048707 Lograr independencia de la maacutequina pudiendo utilizar un mismo
programa en diferentes equipos con la uacutenica condicioacuten de disponer de un programa
traductor o compilador que lo suministra el fabricante para obtener el programa ejecutable en lenguaje binario de la maacutequina que se trate Ademaacutes no
se necesita conocer el hardware especiacutefico de dicha maacutequina
TRADUCTORES
TRADUCTORES Explicamos el proceso maacutes importante a la hora de hacer
funcionar un programa realizado en lenguajes de alto y medio nivel Cuando programamos en lenguajes de alto nivel lo que
estamos haciendo en realidad es el coacutedigo fuente de ese programa Este coacutedigo fuente debe ser traducido a binario para que las
instrucciones que contienen puedan ser entendidas y ejecutadas por la maacutequina Para esto existe un programa encargado de realizar la
traduccioacuten llamado traductor del lenguaje Estos traductores pueden ser de dos tipos Ensambladores
Son los encargados de traducir los programas escritos en lenguaje ensamblador alenguaje maacutequina
Compiladores
Son programas que leen el coacutedigo fuente y lo traducen o convierten a otro lenguajeEstos programas te muestran los errores existentes en el coacutedigo fuente
Etapas del proceso de compilacioacuten
Edicioacuten Esta fase consiste en escribir el programa empleando alguacuten lenguaje y un
editor Como resultado nos daraacute el coacutedigo fuente de nuestro programa
Compilacioacuten En esta fase se traduce el coacutedigo fuente obtenido en la fase anterior a
coacutedigo maacutequina Si no se produce ninguacuten error se obtiene el coacutedigo objeto En caso derrores el compilador los mostrariacutea para ayudarnos a corregirlos y se procederiacutea a su
compilacioacuten de nuevo una vez corregidos
Linkado Esta fase consiste en unir el archivo generado en la fase dos con determinadas
rutinas internas del lenguaje obteniendo el programa ejecutable
Existen dos tipos de linkados
linkado estaacutetico Los binarios de las libreriacuteas se antildeaden a nuestros binarios compilados
generando el archivo ejecutable
Linkado dinaacutemico no se antildeaden las libreriacuteas a nuestro binario sino que haraacute que se
carguen en memoria las libreriacuteas que en ese momento se necesiten
Una vez traducido compilado y linkado el archivo esta listo para su ejecucioacuten donde
tambieacuten podraacuten surgir problemas y fallos para los cuales tendriacuteamos que volver a
realizar todo el proceso anteriormente citado de modo que puedan ser corregidos
Por este motivo es importante realizar numerosas pruebas en tiempo de ejecucioacuten antes
de presentar el programa al cliente
Otro sistema para la ejecucioacuten de nuestro coacutedigo fuente es mediante el uso de
inteacuterpretes (estos no se encontrariacutean dentro de los traductores)
Inteacuterpretes Los inteacuterpretes realizan la traduccioacuten y ejecucioacuten de forma
simultanea es decir un inteacuterprete lee el coacutedigo fuente y lo va ejecutando al mismo
tiempo Las diferencias entre un compilador y un inteacuterprete
baacutesicamente son bull Un programa compilado puede funcionar por si solo
mientras que un coacutedigo traducido por un inteacuterprete no puede funcionar sin eacuteste bull Un programa traducido por un inteacuterprete puede ser
ejecutado en cualquier maacutequina ya que cada vez que se ejecuta el inteacuterprete tiene
que compilarlo bull Un archivo compilado es mucho maacutes raacutepido que uno
interpretado
Anexo Evaluacion
iquest que es la poo
La programacioacuten Orientada a objetos (POO) es una forma especial de programar maacutes cercana a como expresariacuteamos las cosas en la vida real que otros tipos de programacioacuten Con la POO tenemos que aprender a pensar las cosas de una manera distinta para escribir nuestros programas en teacuterminos de objetos propiedades meacutetodos y otras cosas que veremos raacutepidamente para aclarar conceptos y dar una pequentildea base que permita soltarnos un poco con este tipo de programacioacuten
iquest que es programacioacuten
Un lenguaje de programacioacuten es un idioma artificial disentildeado para expresar computaciones que pueden ser llevadas a cabo por maacutequinas como las computadoras Pueden usarse para crear programas que controlen el comportamiento fiacutesico y loacutegico de una maacutequina para expresar algoritmos con precisioacuten o como modo de comunicacioacuten humana Estaacute formado de un conjunto de siacutembolos y reglas sintaacutecticas y semaacutenticas que definen su estructura y el significado de sus elementos y expresiones Al proceso por el cual se escribe se prueba se depura se compila y se mantiene el coacutedigo fuente de un programa informaacutetico se le llama programacioacuten
iquestQueacute es compilador
Un compilador es un programa informaacutetico que traduce un programa escrito en un lenguaje de programacioacuten a otro lenguaje de programacioacuten generando un programa equivalente que la maacutequina seraacute capaz de interpretar Usualmente el segundo lenguaje es lenguaje de maacutequina pero tambieacuten puede ser simplemente texto Este proceso de traduccioacuten se conoce como compilacioacuten
Un compilador es un programa que permite traducir el coacutedigo fuente de un programa en lenguaje de alto nivel a otro lenguaje de nivel inferior (tiacutepicamente lenguaje de maacutequina) De esta manera un programador puede disentildear un programa en un lenguaje mucho maacutes cercano a como piensa un ser humano para luego compilarlo a un programa maacutes manejable por una computadora
menciona una paradigma de programacioacuten
Paradigama logico
La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica
Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por
expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten
interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de
lenguaje loacutegico es Prolog (Programacioacuten loacutegica)
iquest que es lenguaje java La implementacioacuten original y de referencia del compilador la
maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible
Historia La tecnologiacutea Java se creoacute como una herramienta de programacioacuten para ser usada en un proyecto de
set-top-box en una pequentildea operacioacuten denominada the Green Project en Sun Microsystems en el antildeo 1991 El equipo (Green Team) compuesto por trece personas y dirigido por James Gosling trabajoacute durante 18 meses en Sand Hill Road en Menlo Park en su desarrollo
El lenguaje se denominoacute inicialmente Oak (por un roble que habiacutea fuera de la oficina de Gosling) luego pasoacute a denominarse Green tras descubrir que Oak era ya una marca comercial registrada para adaptadores de tarjetas graacuteficas y finalmente se renombroacute a Java
El teacutermino Java fue acuntildeado en una cafeteriacutea frecuentada por algunos de los miembros del equipo Pero no estaacute claro si es un acroacutenimo o no aunque algunas fuentes sentildealan que podriacutea tratarse de las iniciales de sus creadores James Gosling Arthur Van Hoff y Andy Bechtolsheim Otros abogan por el siguiente acroacutenimo Just Another Vague Acronym (soacutelo otro acroacutenimo ambiguo maacutes) La hipoacutetesis que maacutes fuerza tiene es la que Java debe su nombre a un tipo de cafeacute disponible en la cafeteriacutea cercana de ahiacute que el icono de java sea una taza de cafe caliente Un pequentildeo signo que da fuerza a esta teoriacutea es que los 4 primeros bytes (el nuacutemero maacutegico) de los archivos class que genera el compilador son en hexadecimal 0xCAFEBABE Otros simplemente dicen que el nombre fue sacado al parecer de una lista aleatoria de palabras
Los objetivos de Gosling eran implementar una maacutequina virtual y un lenguaje con una estructura y sintaxis similar a C++ Entre junio y julio de 1994 tras una sesioacuten maratoniana de tres diacuteas entre John Gaga James Gosling Joy Naughton Wayne Rosing y Eric Schmidt el equipo reorientoacute la plataforma hacia la Web Sintieron que la llegada del navegador web Mosaic propiciariacutea que Internet se convirtiese en un medio interactivo como el que pensaban era la televisioacuten por cable Naughton creoacute entonces un prototipo de navegador WebRunner que maacutes tarde seriacutea conocido como HotJava
En 1994 se les hizo una demostracioacuten de HotJava y la plataforma Java a los ejecutivos de Sun Java 10a pudo descargarse por primera vez en 1994 pero hubo que esperar al 23 de mayo de 1995 durante las conferencias de SunWorld a que vieran la luz puacuteblica Java y HotJava el navegador Web El acontecimiento fue anunciado por John Gage el Director Cientiacutefico de Sun Microsystems El acto estuvo acompantildeado por una pequentildea sorpresa adicional el anuncio por parte de Marc Andreessen Vicepresidente Ejecutivo de Netscape de que Java seriacutea soportado en sus navegadores El 9 de enero del antildeo siguiente 1996 Sun fundoacute el grupo empresarial JavaSoft para que se encargase del desarrollo tecnoloacutegico [1] Dos semanas maacutes tarde la primera versioacuten de Java fue publicada
La promesa inicial de Gosling era Write Once Run Anywhere (Escriacutebelo una vez ejecuacutetalo en cualquier lugar) proporcionando un lenguaje independiente de la plataforma y un entorno de ejecucioacuten (la JVM) ligero y gratuito para las plataformas maacutes populares de forma que los binarios (bytecode) de las aplicaciones Java pudiesen ejecutarse en cualquier plataforma
El entorno de ejecucioacuten era relativamente seguro y los principales navegadores web pronto incorporaron la posibilidad de ejecutar applets Java incrustadas en las paacuteginas web
Java ha experimentado numerosos cambios desde la versioacuten primigenia JDK 10 asiacute como un enorme incremento en el nuacutemero de clases y paquetes que componen la biblioteca estaacutendar
El lenguaje para la programacioacuten en Java es un lenguaje orientado a objeto de una plataforma independiente
El lenguaje para la programacioacuten en Java fue desarrollado por la compantildeiacutea Sun Microsystems con la idea original de usarlo para la creacioacuten de paginas WEB
Esta programacioacuten Java tiene muchas similitudes con el lenguaje C y C++ asiacute que si se tiene conocimiento de este lenguaje el aprendizaje de la programacioacuten Java seraacute de faacutecil comprensioacuten por un programador que haya realizado programas en estos lenguajes
Con la programacioacuten en Java se pueden realizar distintos aplicativos como son applets que son aplicaciones especiales que se ejecutan dentro de un navegador al ser cargada una pagina HTML en un servidor WEB Por lo general los applets son programas pequentildeos y de propoacutesitos especiacuteficos
Otra de las utilidades de la programacioacuten en Java es el desarrollo de aplicaciones que son programas que se ejecutan en forma independiente es decir con la programacioacuten Java se pueden realizar aplicaciones como un procesador de palabras una hoja que sirva para caacutelculos una aplicacioacuten grafica etc en resumen cualquier tipo de aplicacioacuten se puede realizar con ella Java permite la modularidad por lo que se pueden hacer rutinas individuales que sean usadas por maacutes de una aplicacioacuten por ejemplo tenemos una rutina de impresioacuten que puede servir para el procesador de palabras como para la hoja de calculo
La programacioacuten en Java permite el desarrollo de aplicaciones bajo el esquema de Cliente Servidor como de aplicaciones distribuidas lo que lo hace capaz de conectar dos o maacutes computadoras u ordenadores ejecutando tareas simultaacuteneamente y de esta forma logra distribuir el trabajo a realizar
El anaacutelisis es la base de la programacioacuten estructurada es decir la descomposicioacuten de una tarea en tareas maacutes pequentildeas Un programa no es otra cosa que una coleccioacuten de funciones que son llamadas sucesivamente por la funcioacuten principal y uacutenica del programa Cada funcioacuten tiene sus propias variables es un moacutedulo independiente La Programacioacuten Orientada a Objetos es el siguiente paso en la evolucioacuten de los lenguajes de programacioacuten que combina funciones y datos en una unidad auto consistente denominada clase
La creacioacuten de interfaces graacuteficos como el Windows de Microsoft es uno de los ejemplos maacutes claros de las ventajas que tiene la programacioacuten orientada a objetos sobre la programacioacuten estructurada Las libreriacuteas nos proporcionan clases que describen el aspecto y la conducta de elementos como la ventana el diaacutelogo los controles etc Derivando una clase de otra base estamos utilizando el coacutedigo de la clase base para nuestras propias necesidades y le antildeadimos el coacutedigo que implementa la conducta especiacutefica
Un lenguaje de Programacioacuten Orientada a Objetos nos permite organizar el coacutedigo en entidades como las clases compuestas de datos y funciones y a traveacutes de la caracteriacutestica de la herencia podemos organizar las clases en jerarquiacuteas
Aunque la Programacioacuten Orientada a Objetos es la manera maacutes natural de programar aclimatarse a su ambiente requiere cierto tiempo no se producen resultados inmediatos Los numerosos ejemplos que se comentaraacuten a lo largo de las siguientes paacuteginas trataraacuten de ayudar a efectuar dicha transicioacuten de un modo suave y ordenado Una vez aclimatado sentiraacute por siacute mismo la necesidad de organizar el coacutedigo en clases y posteriormente si lo requiere el problema establecer jerarquiacuteas entre dichas clases
A traveacutes de estas paacuteginas pretendemos mostrar la potencia y elegancia de la programacioacuten en lenguaje Java en dos situaciones concretas en la creacioacuten de interfaces graacuteficas avanzadas (applets) y en la resolucioacuten de problemas numeacutericos
Se pondraacute especial eacutenfasis en la Programacioacuten Orientada a Objetos que es la parte que los no iniciados encuentran maacutes difiacutecil Aprender a extraer las propiedades y el comportamiento comunes a un determinado tipo de objetos y transformarlas en la definicioacuten de una clase estructurar las clases en jerarquiacuteas constituyen procesos de abstracccioacuten que implican un cambio de mentalidad en la resolucioacuten de los problemas de software que precisan de entrenamiento y de un esfuerzo intenso
El objetivo es el de ensentildear al lector a traducir la descripcioacuten de un problema o situacioacuten que se plantea a coacutedigo a organizar el coacutedigo en funciones a agrupar datos y funciones en clases y las clases en jerarquiacuteas
Una vez entendidos los conceptos baacutesicos la creacioacuten de applets no presentaraacute grandes dificultades si se hace con la ayuda de un Entorno Integrado de Desarrollo como JBuilder de Borland (ahora Inprise) el cual genera casi todo el coacutedigo correspondiente al interfaz dejando al programador la tarea de darle funcionalidad es decir la de definir la respuesta a las distintas acciones
PARADIGMAS DE PROGRAMACIOacuteN Un paradigma de programacioacuten es un modelo baacutesico de disentildeo y desarrollo de programas que permite producir programas con unas directrices especiacuteficas tales como estructura modular fuerte cohesioacuten alta rentabilidad etc Los paradigmas pueden ser considerados como patrones de pensamiento para la resolucioacuten de problemas Desde luego siempre teniendo en cuenta los lenguajes de programacioacuten seguacuten nuestro intereacutes de estudio No es mejor uno que otro sino que cada uno tiene ventajas y desventajas Tambieacuten
hay situaciones donde un paradigma resulta maacutes apropiado que otro Hay multitud de ellos atendiendo a alguna particularidad metodoloacutegica o funcional Cuando un lenguaje refleja bien un paradigma particular se dice que soporta el paradigma y en la praacutectica un lenguaje que soporta correctamente un paradigma es difiacutecil distinguirlo del propio paradigma por lo que se identifica con eacutel
Tipos de paradigmas de programacioacuten Podemos clasificar los paradigmas de programacioacuten en Paradigma imperativo heuristico concurrente funcional loacutegico paradigma basado en objetos
Paradigma imperativo Son aquellos que facilitan los caacutelculos por medio de cambios de estado entendiendo como estado la condicioacuten de una memoria de almacenamiento Los lenguajes
estructurados en bloques se refieren a los aacutembitos anidados es decir los bloques pueden estar anidados dentro de otros bloques y contener sus propias variables Los programas escritos en un lenguaje funcional estaacuten constituidos uacutenicamente por definiciones de funciones entendiendo eacutestas no como subprogramas claacutesicos de un lenguaje imperativo sino como funciones puramente matemaacuteticas en las que se verifican ciertas propiedades como la transparencia referencial (el significado de una expresioacuten depende uacutenicamente del significado de sus subexpresiones) y por tanto la carencia total de efectos laterales El objetivo es conseguir lenguajes expresivos y matemaacuteticamente elegantes en
los que no sea necesario bajar al nivel de la maacutequina para describir el proceso llevado a cabo por el programa y evitando el concepto de estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programa se regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otras cada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas A este tipo de paradigma de programacioacuten se le suele llamar algoriacutetmico Otras caracteriacutesticas propias de estos lenguajes son la no existencia de
asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteracioacuten (lo que obliga en la praacutectica a que todas las repeticiones de instrucciones
se lleven a cabo por medio de funciones recursivas)
Algunos de los lenguajes imperativos son bull C bull C++ bull C bull Basic bull Java bull Perl Paradigma heuristico Define un modelo de resolucioacuten de problemas en el que se incorpora alguacuten componente heuriacutestico sobre la base de una representacioacuten maacutes apropiada de la estructura del problema para su resolucioacuten con teacutecnicas heuriacutesticas Se puede definir como aquel tipo de programacioacuten computacional que aplica para la resolucioacuten de problemas reglas de buena loacutegica (reglas del pulgar) denominadas heuriacutesticas las cuales proporcionan entre varios cursos de accioacuten uno que presenta visos de ser el maacutes prometedor pero no garantiza necesariamente el curso de accioacuten maacutes efectivo La Programacioacuten Heuriacutestica implica una forma de modelizar el problema en lo que respecta a la representacioacuten de su estructura estrategias de buacutesqueda y meacutetodos de resolucioacuten que configuran el Para
Este tipo de programacioacuten se aplica con mayor intensidad en el campo de la
Inteligencia Artificial (IA) y en especial en el de la Ingenieriacutea del
Conocimientodigma Heuriacutestico
La Programacioacuten Heuriacutestica se presenta y utiliza desde diferentes puntos de vista
o Como teacutecnica de buacutesqueda para la obtencioacuten de metas en problemas no
algoriacutetmicos o con algoritmos que generan explosioacuten combinatoria
o Como un meacutetodo aproximado de resolucioacuten de problemas utilizando
funciones de evaluacioacuten de tipo heuriacutestico
o Como meacutetodo de poda para estrategias de programas que juegan aunque
estos meacutetodos no son realmente heuriacutesticos
Paradigma funcional
Sus oriacutegenes provienen del Caacutelculo Lambda (o λ-caacutelculo) una teoriacutea matemaacutetica
elaborada por Alonzo Church como apoyo a sus estudios sobre computabilidad Un
lenguaje funcional es a grandes rasgos un azuacutecar sintaacutectico del Caacutelculo Lambda
El paradigma funcional estaacute basado en el modelo matemaacutetico de composicioacuten funcional En este modelo el resultado de un caacutelculo es la entrada del siguiente y asiacute sucesivamente hasta que una composicioacuten produce el valor deseado No existe el concepto de celda de memoria que es asignada o modificada Maacutes
bien existen valores intermedios que son el resultado de caacutelculos anteriores y las
entradas a caacutelculos subsiguientes Tampoco existen sentencias imperativas y todas las funciones tienen transparencia referencial La programacioacuten funcional incorpora el concepto de funcioacuten como objeto de primera clase lo que significa que las funciones se pueden tratar como datos (pueden pasar como paraacutemetros calculadas y devueltas como valores normales y mezcladas en el caacutelculo con otras formas de datos) En este paradigma el informaacutetico concibe la solucioacuten como una composicioacuten de funciones La forma en que se especifican las funciones puede variar Se pueden especificar procedimentalmente o matemaacuteticamente mediante su definicioacuten sin secuencia de control Un lenguaje funcional es el Lisp
Paradigma loacutegico La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de lenguaje loacutegico es Prolog (Programacioacuten loacutegica) Prolog proveniente del ingleacutes Programming in Logic es un lenguaje loacutegico bastante popular en el medio de investigacioacuten en Inteligencia Artificial Prolog es un lenguaje muy diferente tanto de los imperativos como Fortran Pascal C etc como de los funcionales como Lisp En todos los mencionados las instrucciones se ejecutan normalmente en orden secuencial es decir una a continuacioacuten de otra en el mismo orden en que estaacuten escritas que soacutelo variacutea cuando se alcanza una instruccioacuten de control (un bucle una instruccioacuten condicional o una transferencia) En Prolog las cosas son distintas el orden de ejecucioacuten de las instrucciones no tiene nada que ver con el orden en que fueron escritas Tampoco hay instrucciones de control propiamente dichas Para trabajar con este lenguaje un programador debe acostumbrarse a pensar de una manera muy diferente a la que se utiliza en los lenguajes claacutesicos
Paradigma basado en objetos
La programacioacuten orientada a objetos (OOP por las siglas inglesas de Object- Oriented Programming) es una forma de programar que proliferoacute a partir de los antildeos ochenta La Programacioacuten Orientada a Objetos (POO u OOP seguacuten siglas en ingleacutes) es un paradigma de programacioacuten que define los programas en teacuterminos de clases de objetos objetos que son entidades que combinan estado (es decir datos) comportamiento (esto es procedimientos o meacutetodos) e identidad (propiedad del objeto que lo diferencia del resto) La programacioacuten orientada a objetos expresa un programa como un conjunto de estos objetos que colaboran entre ellos para realizar tareas Esto permite hacer los programas y moacutedulos maacutes faacuteciles de escribir mantener y reutilizar De esta forma un objeto contiene toda la informacioacuten (los denominados atributos) que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de una misma clase al poder tener valores bien diferenciados en sus atributos)
CLASIFICACIONES DE LENGUAJES DE PROGARMACIOacuteN
Lenguaje maacutequina El lenguaje maacutequina es el uacutenico que entiende directamente la computadora utiliza el alfabeto binario que consta de los dos uacutenicos siacutembolos 0 y 1 denominados bits (abreviatura inglesa de diacutegitos binarios) Fue el primer lenguaje utilizado en la programacioacuten de computadoras pero dejoacute de utilizarse por su dificultad y
complicacioacuten siendo sustituido por otros lenguajes maacutes faacuteciles de aprender y utilizar que ademaacutes reducen la posibilidad de cometer errores Lenguaje de bajo nivel Un lenguaje de programacioacuten de bajo nivel es el que proporciona poca o
ninguna abstraccioacuten del microprocesador de un ordenador Consecuentemente es faacutecilmente trasladado a lenguaje de maacutequinaEn general se utiliza este tipo de lenguaje para programar controladores (drivers) La programacioacuten en un lenguaje de bajo nivel como el lenguaje de la maacutequina o el lenguaje simboacutelico tiene ciertas ventajas 1 Mayor adaptacioacuten al equipo 2 Posibilidad de obtener la maacutexima velocidad con miacutenimo uso de memoria Pero tambieacuten tiene importantes inconvenientes Imposibilidad de escribir coacutedigo independiente de la maacutequina Mayor dificultad en la programacioacuten y en la comprensioacuten de los programas
Caracteriacutesticas - Se trabaja a nivel de Microinstrucciones es decir su programacioacuten es al
maacutes fino detalle - Estaacute orientado a la maacutequina Lenguaje de alto nivel Los lenguajes de alto nivel logran la independencia del tipo de maacutequina
y se aproximan al lenguaje natural Se puede decir que el principal problema que
presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen
actualmente en uso Los lenguajes de alto nivel tambieacuten denominados lenguajes
evolucionados surgen con posterioridad a los anteriores con los siguientes objetivos entre otros 1048707 Lograr independencia de la maacutequina pudiendo utilizar un mismo
programa en diferentes equipos con la uacutenica condicioacuten de disponer de un programa
traductor o compilador que lo suministra el fabricante para obtener el programa ejecutable en lenguaje binario de la maacutequina que se trate Ademaacutes no
se necesita conocer el hardware especiacutefico de dicha maacutequina
TRADUCTORES
TRADUCTORES Explicamos el proceso maacutes importante a la hora de hacer
funcionar un programa realizado en lenguajes de alto y medio nivel Cuando programamos en lenguajes de alto nivel lo que
estamos haciendo en realidad es el coacutedigo fuente de ese programa Este coacutedigo fuente debe ser traducido a binario para que las
instrucciones que contienen puedan ser entendidas y ejecutadas por la maacutequina Para esto existe un programa encargado de realizar la
traduccioacuten llamado traductor del lenguaje Estos traductores pueden ser de dos tipos Ensambladores
Son los encargados de traducir los programas escritos en lenguaje ensamblador alenguaje maacutequina
Compiladores
Son programas que leen el coacutedigo fuente y lo traducen o convierten a otro lenguajeEstos programas te muestran los errores existentes en el coacutedigo fuente
Etapas del proceso de compilacioacuten
Edicioacuten Esta fase consiste en escribir el programa empleando alguacuten lenguaje y un
editor Como resultado nos daraacute el coacutedigo fuente de nuestro programa
Compilacioacuten En esta fase se traduce el coacutedigo fuente obtenido en la fase anterior a
coacutedigo maacutequina Si no se produce ninguacuten error se obtiene el coacutedigo objeto En caso derrores el compilador los mostrariacutea para ayudarnos a corregirlos y se procederiacutea a su
compilacioacuten de nuevo una vez corregidos
Linkado Esta fase consiste en unir el archivo generado en la fase dos con determinadas
rutinas internas del lenguaje obteniendo el programa ejecutable
Existen dos tipos de linkados
linkado estaacutetico Los binarios de las libreriacuteas se antildeaden a nuestros binarios compilados
generando el archivo ejecutable
Linkado dinaacutemico no se antildeaden las libreriacuteas a nuestro binario sino que haraacute que se
carguen en memoria las libreriacuteas que en ese momento se necesiten
Una vez traducido compilado y linkado el archivo esta listo para su ejecucioacuten donde
tambieacuten podraacuten surgir problemas y fallos para los cuales tendriacuteamos que volver a
realizar todo el proceso anteriormente citado de modo que puedan ser corregidos
Por este motivo es importante realizar numerosas pruebas en tiempo de ejecucioacuten antes
de presentar el programa al cliente
Otro sistema para la ejecucioacuten de nuestro coacutedigo fuente es mediante el uso de
inteacuterpretes (estos no se encontrariacutean dentro de los traductores)
Inteacuterpretes Los inteacuterpretes realizan la traduccioacuten y ejecucioacuten de forma
simultanea es decir un inteacuterprete lee el coacutedigo fuente y lo va ejecutando al mismo
tiempo Las diferencias entre un compilador y un inteacuterprete
baacutesicamente son bull Un programa compilado puede funcionar por si solo
mientras que un coacutedigo traducido por un inteacuterprete no puede funcionar sin eacuteste bull Un programa traducido por un inteacuterprete puede ser
ejecutado en cualquier maacutequina ya que cada vez que se ejecuta el inteacuterprete tiene
que compilarlo bull Un archivo compilado es mucho maacutes raacutepido que uno
interpretado
Anexo Evaluacion
iquest que es la poo
La programacioacuten Orientada a objetos (POO) es una forma especial de programar maacutes cercana a como expresariacuteamos las cosas en la vida real que otros tipos de programacioacuten Con la POO tenemos que aprender a pensar las cosas de una manera distinta para escribir nuestros programas en teacuterminos de objetos propiedades meacutetodos y otras cosas que veremos raacutepidamente para aclarar conceptos y dar una pequentildea base que permita soltarnos un poco con este tipo de programacioacuten
iquest que es programacioacuten
Un lenguaje de programacioacuten es un idioma artificial disentildeado para expresar computaciones que pueden ser llevadas a cabo por maacutequinas como las computadoras Pueden usarse para crear programas que controlen el comportamiento fiacutesico y loacutegico de una maacutequina para expresar algoritmos con precisioacuten o como modo de comunicacioacuten humana Estaacute formado de un conjunto de siacutembolos y reglas sintaacutecticas y semaacutenticas que definen su estructura y el significado de sus elementos y expresiones Al proceso por el cual se escribe se prueba se depura se compila y se mantiene el coacutedigo fuente de un programa informaacutetico se le llama programacioacuten
iquestQueacute es compilador
Un compilador es un programa informaacutetico que traduce un programa escrito en un lenguaje de programacioacuten a otro lenguaje de programacioacuten generando un programa equivalente que la maacutequina seraacute capaz de interpretar Usualmente el segundo lenguaje es lenguaje de maacutequina pero tambieacuten puede ser simplemente texto Este proceso de traduccioacuten se conoce como compilacioacuten
Un compilador es un programa que permite traducir el coacutedigo fuente de un programa en lenguaje de alto nivel a otro lenguaje de nivel inferior (tiacutepicamente lenguaje de maacutequina) De esta manera un programador puede disentildear un programa en un lenguaje mucho maacutes cercano a como piensa un ser humano para luego compilarlo a un programa maacutes manejable por una computadora
menciona una paradigma de programacioacuten
Paradigama logico
La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica
Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por
expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten
interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de
lenguaje loacutegico es Prolog (Programacioacuten loacutegica)
iquest que es lenguaje java La implementacioacuten original y de referencia del compilador la
maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible
El lenguaje para la programacioacuten en Java es un lenguaje orientado a objeto de una plataforma independiente
El lenguaje para la programacioacuten en Java fue desarrollado por la compantildeiacutea Sun Microsystems con la idea original de usarlo para la creacioacuten de paginas WEB
Esta programacioacuten Java tiene muchas similitudes con el lenguaje C y C++ asiacute que si se tiene conocimiento de este lenguaje el aprendizaje de la programacioacuten Java seraacute de faacutecil comprensioacuten por un programador que haya realizado programas en estos lenguajes
Con la programacioacuten en Java se pueden realizar distintos aplicativos como son applets que son aplicaciones especiales que se ejecutan dentro de un navegador al ser cargada una pagina HTML en un servidor WEB Por lo general los applets son programas pequentildeos y de propoacutesitos especiacuteficos
Otra de las utilidades de la programacioacuten en Java es el desarrollo de aplicaciones que son programas que se ejecutan en forma independiente es decir con la programacioacuten Java se pueden realizar aplicaciones como un procesador de palabras una hoja que sirva para caacutelculos una aplicacioacuten grafica etc en resumen cualquier tipo de aplicacioacuten se puede realizar con ella Java permite la modularidad por lo que se pueden hacer rutinas individuales que sean usadas por maacutes de una aplicacioacuten por ejemplo tenemos una rutina de impresioacuten que puede servir para el procesador de palabras como para la hoja de calculo
La programacioacuten en Java permite el desarrollo de aplicaciones bajo el esquema de Cliente Servidor como de aplicaciones distribuidas lo que lo hace capaz de conectar dos o maacutes computadoras u ordenadores ejecutando tareas simultaacuteneamente y de esta forma logra distribuir el trabajo a realizar
El anaacutelisis es la base de la programacioacuten estructurada es decir la descomposicioacuten de una tarea en tareas maacutes pequentildeas Un programa no es otra cosa que una coleccioacuten de funciones que son llamadas sucesivamente por la funcioacuten principal y uacutenica del programa Cada funcioacuten tiene sus propias variables es un moacutedulo independiente La Programacioacuten Orientada a Objetos es el siguiente paso en la evolucioacuten de los lenguajes de programacioacuten que combina funciones y datos en una unidad auto consistente denominada clase
La creacioacuten de interfaces graacuteficos como el Windows de Microsoft es uno de los ejemplos maacutes claros de las ventajas que tiene la programacioacuten orientada a objetos sobre la programacioacuten estructurada Las libreriacuteas nos proporcionan clases que describen el aspecto y la conducta de elementos como la ventana el diaacutelogo los controles etc Derivando una clase de otra base estamos utilizando el coacutedigo de la clase base para nuestras propias necesidades y le antildeadimos el coacutedigo que implementa la conducta especiacutefica
Un lenguaje de Programacioacuten Orientada a Objetos nos permite organizar el coacutedigo en entidades como las clases compuestas de datos y funciones y a traveacutes de la caracteriacutestica de la herencia podemos organizar las clases en jerarquiacuteas
Aunque la Programacioacuten Orientada a Objetos es la manera maacutes natural de programar aclimatarse a su ambiente requiere cierto tiempo no se producen resultados inmediatos Los numerosos ejemplos que se comentaraacuten a lo largo de las siguientes paacuteginas trataraacuten de ayudar a efectuar dicha transicioacuten de un modo suave y ordenado Una vez aclimatado sentiraacute por siacute mismo la necesidad de organizar el coacutedigo en clases y posteriormente si lo requiere el problema establecer jerarquiacuteas entre dichas clases
A traveacutes de estas paacuteginas pretendemos mostrar la potencia y elegancia de la programacioacuten en lenguaje Java en dos situaciones concretas en la creacioacuten de interfaces graacuteficas avanzadas (applets) y en la resolucioacuten de problemas numeacutericos
Se pondraacute especial eacutenfasis en la Programacioacuten Orientada a Objetos que es la parte que los no iniciados encuentran maacutes difiacutecil Aprender a extraer las propiedades y el comportamiento comunes a un determinado tipo de objetos y transformarlas en la definicioacuten de una clase estructurar las clases en jerarquiacuteas constituyen procesos de abstracccioacuten que implican un cambio de mentalidad en la resolucioacuten de los problemas de software que precisan de entrenamiento y de un esfuerzo intenso
El objetivo es el de ensentildear al lector a traducir la descripcioacuten de un problema o situacioacuten que se plantea a coacutedigo a organizar el coacutedigo en funciones a agrupar datos y funciones en clases y las clases en jerarquiacuteas
Una vez entendidos los conceptos baacutesicos la creacioacuten de applets no presentaraacute grandes dificultades si se hace con la ayuda de un Entorno Integrado de Desarrollo como JBuilder de Borland (ahora Inprise) el cual genera casi todo el coacutedigo correspondiente al interfaz dejando al programador la tarea de darle funcionalidad es decir la de definir la respuesta a las distintas acciones
PARADIGMAS DE PROGRAMACIOacuteN Un paradigma de programacioacuten es un modelo baacutesico de disentildeo y desarrollo de programas que permite producir programas con unas directrices especiacuteficas tales como estructura modular fuerte cohesioacuten alta rentabilidad etc Los paradigmas pueden ser considerados como patrones de pensamiento para la resolucioacuten de problemas Desde luego siempre teniendo en cuenta los lenguajes de programacioacuten seguacuten nuestro intereacutes de estudio No es mejor uno que otro sino que cada uno tiene ventajas y desventajas Tambieacuten
hay situaciones donde un paradigma resulta maacutes apropiado que otro Hay multitud de ellos atendiendo a alguna particularidad metodoloacutegica o funcional Cuando un lenguaje refleja bien un paradigma particular se dice que soporta el paradigma y en la praacutectica un lenguaje que soporta correctamente un paradigma es difiacutecil distinguirlo del propio paradigma por lo que se identifica con eacutel
Tipos de paradigmas de programacioacuten Podemos clasificar los paradigmas de programacioacuten en Paradigma imperativo heuristico concurrente funcional loacutegico paradigma basado en objetos
Paradigma imperativo Son aquellos que facilitan los caacutelculos por medio de cambios de estado entendiendo como estado la condicioacuten de una memoria de almacenamiento Los lenguajes
estructurados en bloques se refieren a los aacutembitos anidados es decir los bloques pueden estar anidados dentro de otros bloques y contener sus propias variables Los programas escritos en un lenguaje funcional estaacuten constituidos uacutenicamente por definiciones de funciones entendiendo eacutestas no como subprogramas claacutesicos de un lenguaje imperativo sino como funciones puramente matemaacuteticas en las que se verifican ciertas propiedades como la transparencia referencial (el significado de una expresioacuten depende uacutenicamente del significado de sus subexpresiones) y por tanto la carencia total de efectos laterales El objetivo es conseguir lenguajes expresivos y matemaacuteticamente elegantes en
los que no sea necesario bajar al nivel de la maacutequina para describir el proceso llevado a cabo por el programa y evitando el concepto de estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programa se regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otras cada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas A este tipo de paradigma de programacioacuten se le suele llamar algoriacutetmico Otras caracteriacutesticas propias de estos lenguajes son la no existencia de
asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteracioacuten (lo que obliga en la praacutectica a que todas las repeticiones de instrucciones
se lleven a cabo por medio de funciones recursivas)
Algunos de los lenguajes imperativos son bull C bull C++ bull C bull Basic bull Java bull Perl Paradigma heuristico Define un modelo de resolucioacuten de problemas en el que se incorpora alguacuten componente heuriacutestico sobre la base de una representacioacuten maacutes apropiada de la estructura del problema para su resolucioacuten con teacutecnicas heuriacutesticas Se puede definir como aquel tipo de programacioacuten computacional que aplica para la resolucioacuten de problemas reglas de buena loacutegica (reglas del pulgar) denominadas heuriacutesticas las cuales proporcionan entre varios cursos de accioacuten uno que presenta visos de ser el maacutes prometedor pero no garantiza necesariamente el curso de accioacuten maacutes efectivo La Programacioacuten Heuriacutestica implica una forma de modelizar el problema en lo que respecta a la representacioacuten de su estructura estrategias de buacutesqueda y meacutetodos de resolucioacuten que configuran el Para
Este tipo de programacioacuten se aplica con mayor intensidad en el campo de la
Inteligencia Artificial (IA) y en especial en el de la Ingenieriacutea del
Conocimientodigma Heuriacutestico
La Programacioacuten Heuriacutestica se presenta y utiliza desde diferentes puntos de vista
o Como teacutecnica de buacutesqueda para la obtencioacuten de metas en problemas no
algoriacutetmicos o con algoritmos que generan explosioacuten combinatoria
o Como un meacutetodo aproximado de resolucioacuten de problemas utilizando
funciones de evaluacioacuten de tipo heuriacutestico
o Como meacutetodo de poda para estrategias de programas que juegan aunque
estos meacutetodos no son realmente heuriacutesticos
Paradigma funcional
Sus oriacutegenes provienen del Caacutelculo Lambda (o λ-caacutelculo) una teoriacutea matemaacutetica
elaborada por Alonzo Church como apoyo a sus estudios sobre computabilidad Un
lenguaje funcional es a grandes rasgos un azuacutecar sintaacutectico del Caacutelculo Lambda
El paradigma funcional estaacute basado en el modelo matemaacutetico de composicioacuten funcional En este modelo el resultado de un caacutelculo es la entrada del siguiente y asiacute sucesivamente hasta que una composicioacuten produce el valor deseado No existe el concepto de celda de memoria que es asignada o modificada Maacutes
bien existen valores intermedios que son el resultado de caacutelculos anteriores y las
entradas a caacutelculos subsiguientes Tampoco existen sentencias imperativas y todas las funciones tienen transparencia referencial La programacioacuten funcional incorpora el concepto de funcioacuten como objeto de primera clase lo que significa que las funciones se pueden tratar como datos (pueden pasar como paraacutemetros calculadas y devueltas como valores normales y mezcladas en el caacutelculo con otras formas de datos) En este paradigma el informaacutetico concibe la solucioacuten como una composicioacuten de funciones La forma en que se especifican las funciones puede variar Se pueden especificar procedimentalmente o matemaacuteticamente mediante su definicioacuten sin secuencia de control Un lenguaje funcional es el Lisp
Paradigma loacutegico La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de lenguaje loacutegico es Prolog (Programacioacuten loacutegica) Prolog proveniente del ingleacutes Programming in Logic es un lenguaje loacutegico bastante popular en el medio de investigacioacuten en Inteligencia Artificial Prolog es un lenguaje muy diferente tanto de los imperativos como Fortran Pascal C etc como de los funcionales como Lisp En todos los mencionados las instrucciones se ejecutan normalmente en orden secuencial es decir una a continuacioacuten de otra en el mismo orden en que estaacuten escritas que soacutelo variacutea cuando se alcanza una instruccioacuten de control (un bucle una instruccioacuten condicional o una transferencia) En Prolog las cosas son distintas el orden de ejecucioacuten de las instrucciones no tiene nada que ver con el orden en que fueron escritas Tampoco hay instrucciones de control propiamente dichas Para trabajar con este lenguaje un programador debe acostumbrarse a pensar de una manera muy diferente a la que se utiliza en los lenguajes claacutesicos
Paradigma basado en objetos
La programacioacuten orientada a objetos (OOP por las siglas inglesas de Object- Oriented Programming) es una forma de programar que proliferoacute a partir de los antildeos ochenta La Programacioacuten Orientada a Objetos (POO u OOP seguacuten siglas en ingleacutes) es un paradigma de programacioacuten que define los programas en teacuterminos de clases de objetos objetos que son entidades que combinan estado (es decir datos) comportamiento (esto es procedimientos o meacutetodos) e identidad (propiedad del objeto que lo diferencia del resto) La programacioacuten orientada a objetos expresa un programa como un conjunto de estos objetos que colaboran entre ellos para realizar tareas Esto permite hacer los programas y moacutedulos maacutes faacuteciles de escribir mantener y reutilizar De esta forma un objeto contiene toda la informacioacuten (los denominados atributos) que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de una misma clase al poder tener valores bien diferenciados en sus atributos)
CLASIFICACIONES DE LENGUAJES DE PROGARMACIOacuteN
Lenguaje maacutequina El lenguaje maacutequina es el uacutenico que entiende directamente la computadora utiliza el alfabeto binario que consta de los dos uacutenicos siacutembolos 0 y 1 denominados bits (abreviatura inglesa de diacutegitos binarios) Fue el primer lenguaje utilizado en la programacioacuten de computadoras pero dejoacute de utilizarse por su dificultad y
complicacioacuten siendo sustituido por otros lenguajes maacutes faacuteciles de aprender y utilizar que ademaacutes reducen la posibilidad de cometer errores Lenguaje de bajo nivel Un lenguaje de programacioacuten de bajo nivel es el que proporciona poca o
ninguna abstraccioacuten del microprocesador de un ordenador Consecuentemente es faacutecilmente trasladado a lenguaje de maacutequinaEn general se utiliza este tipo de lenguaje para programar controladores (drivers) La programacioacuten en un lenguaje de bajo nivel como el lenguaje de la maacutequina o el lenguaje simboacutelico tiene ciertas ventajas 1 Mayor adaptacioacuten al equipo 2 Posibilidad de obtener la maacutexima velocidad con miacutenimo uso de memoria Pero tambieacuten tiene importantes inconvenientes Imposibilidad de escribir coacutedigo independiente de la maacutequina Mayor dificultad en la programacioacuten y en la comprensioacuten de los programas
Caracteriacutesticas - Se trabaja a nivel de Microinstrucciones es decir su programacioacuten es al
maacutes fino detalle - Estaacute orientado a la maacutequina Lenguaje de alto nivel Los lenguajes de alto nivel logran la independencia del tipo de maacutequina
y se aproximan al lenguaje natural Se puede decir que el principal problema que
presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen
actualmente en uso Los lenguajes de alto nivel tambieacuten denominados lenguajes
evolucionados surgen con posterioridad a los anteriores con los siguientes objetivos entre otros 1048707 Lograr independencia de la maacutequina pudiendo utilizar un mismo
programa en diferentes equipos con la uacutenica condicioacuten de disponer de un programa
traductor o compilador que lo suministra el fabricante para obtener el programa ejecutable en lenguaje binario de la maacutequina que se trate Ademaacutes no
se necesita conocer el hardware especiacutefico de dicha maacutequina
TRADUCTORES
TRADUCTORES Explicamos el proceso maacutes importante a la hora de hacer
funcionar un programa realizado en lenguajes de alto y medio nivel Cuando programamos en lenguajes de alto nivel lo que
estamos haciendo en realidad es el coacutedigo fuente de ese programa Este coacutedigo fuente debe ser traducido a binario para que las
instrucciones que contienen puedan ser entendidas y ejecutadas por la maacutequina Para esto existe un programa encargado de realizar la
traduccioacuten llamado traductor del lenguaje Estos traductores pueden ser de dos tipos Ensambladores
Son los encargados de traducir los programas escritos en lenguaje ensamblador alenguaje maacutequina
Compiladores
Son programas que leen el coacutedigo fuente y lo traducen o convierten a otro lenguajeEstos programas te muestran los errores existentes en el coacutedigo fuente
Etapas del proceso de compilacioacuten
Edicioacuten Esta fase consiste en escribir el programa empleando alguacuten lenguaje y un
editor Como resultado nos daraacute el coacutedigo fuente de nuestro programa
Compilacioacuten En esta fase se traduce el coacutedigo fuente obtenido en la fase anterior a
coacutedigo maacutequina Si no se produce ninguacuten error se obtiene el coacutedigo objeto En caso derrores el compilador los mostrariacutea para ayudarnos a corregirlos y se procederiacutea a su
compilacioacuten de nuevo una vez corregidos
Linkado Esta fase consiste en unir el archivo generado en la fase dos con determinadas
rutinas internas del lenguaje obteniendo el programa ejecutable
Existen dos tipos de linkados
linkado estaacutetico Los binarios de las libreriacuteas se antildeaden a nuestros binarios compilados
generando el archivo ejecutable
Linkado dinaacutemico no se antildeaden las libreriacuteas a nuestro binario sino que haraacute que se
carguen en memoria las libreriacuteas que en ese momento se necesiten
Una vez traducido compilado y linkado el archivo esta listo para su ejecucioacuten donde
tambieacuten podraacuten surgir problemas y fallos para los cuales tendriacuteamos que volver a
realizar todo el proceso anteriormente citado de modo que puedan ser corregidos
Por este motivo es importante realizar numerosas pruebas en tiempo de ejecucioacuten antes
de presentar el programa al cliente
Otro sistema para la ejecucioacuten de nuestro coacutedigo fuente es mediante el uso de
inteacuterpretes (estos no se encontrariacutean dentro de los traductores)
Inteacuterpretes Los inteacuterpretes realizan la traduccioacuten y ejecucioacuten de forma
simultanea es decir un inteacuterprete lee el coacutedigo fuente y lo va ejecutando al mismo
tiempo Las diferencias entre un compilador y un inteacuterprete
baacutesicamente son bull Un programa compilado puede funcionar por si solo
mientras que un coacutedigo traducido por un inteacuterprete no puede funcionar sin eacuteste bull Un programa traducido por un inteacuterprete puede ser
ejecutado en cualquier maacutequina ya que cada vez que se ejecuta el inteacuterprete tiene
que compilarlo bull Un archivo compilado es mucho maacutes raacutepido que uno
interpretado
Anexo Evaluacion
iquest que es la poo
La programacioacuten Orientada a objetos (POO) es una forma especial de programar maacutes cercana a como expresariacuteamos las cosas en la vida real que otros tipos de programacioacuten Con la POO tenemos que aprender a pensar las cosas de una manera distinta para escribir nuestros programas en teacuterminos de objetos propiedades meacutetodos y otras cosas que veremos raacutepidamente para aclarar conceptos y dar una pequentildea base que permita soltarnos un poco con este tipo de programacioacuten
iquest que es programacioacuten
Un lenguaje de programacioacuten es un idioma artificial disentildeado para expresar computaciones que pueden ser llevadas a cabo por maacutequinas como las computadoras Pueden usarse para crear programas que controlen el comportamiento fiacutesico y loacutegico de una maacutequina para expresar algoritmos con precisioacuten o como modo de comunicacioacuten humana Estaacute formado de un conjunto de siacutembolos y reglas sintaacutecticas y semaacutenticas que definen su estructura y el significado de sus elementos y expresiones Al proceso por el cual se escribe se prueba se depura se compila y se mantiene el coacutedigo fuente de un programa informaacutetico se le llama programacioacuten
iquestQueacute es compilador
Un compilador es un programa informaacutetico que traduce un programa escrito en un lenguaje de programacioacuten a otro lenguaje de programacioacuten generando un programa equivalente que la maacutequina seraacute capaz de interpretar Usualmente el segundo lenguaje es lenguaje de maacutequina pero tambieacuten puede ser simplemente texto Este proceso de traduccioacuten se conoce como compilacioacuten
Un compilador es un programa que permite traducir el coacutedigo fuente de un programa en lenguaje de alto nivel a otro lenguaje de nivel inferior (tiacutepicamente lenguaje de maacutequina) De esta manera un programador puede disentildear un programa en un lenguaje mucho maacutes cercano a como piensa un ser humano para luego compilarlo a un programa maacutes manejable por una computadora
menciona una paradigma de programacioacuten
Paradigama logico
La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica
Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por
expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten
interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de
lenguaje loacutegico es Prolog (Programacioacuten loacutegica)
iquest que es lenguaje java La implementacioacuten original y de referencia del compilador la
maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible
El anaacutelisis es la base de la programacioacuten estructurada es decir la descomposicioacuten de una tarea en tareas maacutes pequentildeas Un programa no es otra cosa que una coleccioacuten de funciones que son llamadas sucesivamente por la funcioacuten principal y uacutenica del programa Cada funcioacuten tiene sus propias variables es un moacutedulo independiente La Programacioacuten Orientada a Objetos es el siguiente paso en la evolucioacuten de los lenguajes de programacioacuten que combina funciones y datos en una unidad auto consistente denominada clase
La creacioacuten de interfaces graacuteficos como el Windows de Microsoft es uno de los ejemplos maacutes claros de las ventajas que tiene la programacioacuten orientada a objetos sobre la programacioacuten estructurada Las libreriacuteas nos proporcionan clases que describen el aspecto y la conducta de elementos como la ventana el diaacutelogo los controles etc Derivando una clase de otra base estamos utilizando el coacutedigo de la clase base para nuestras propias necesidades y le antildeadimos el coacutedigo que implementa la conducta especiacutefica
Un lenguaje de Programacioacuten Orientada a Objetos nos permite organizar el coacutedigo en entidades como las clases compuestas de datos y funciones y a traveacutes de la caracteriacutestica de la herencia podemos organizar las clases en jerarquiacuteas
Aunque la Programacioacuten Orientada a Objetos es la manera maacutes natural de programar aclimatarse a su ambiente requiere cierto tiempo no se producen resultados inmediatos Los numerosos ejemplos que se comentaraacuten a lo largo de las siguientes paacuteginas trataraacuten de ayudar a efectuar dicha transicioacuten de un modo suave y ordenado Una vez aclimatado sentiraacute por siacute mismo la necesidad de organizar el coacutedigo en clases y posteriormente si lo requiere el problema establecer jerarquiacuteas entre dichas clases
A traveacutes de estas paacuteginas pretendemos mostrar la potencia y elegancia de la programacioacuten en lenguaje Java en dos situaciones concretas en la creacioacuten de interfaces graacuteficas avanzadas (applets) y en la resolucioacuten de problemas numeacutericos
Se pondraacute especial eacutenfasis en la Programacioacuten Orientada a Objetos que es la parte que los no iniciados encuentran maacutes difiacutecil Aprender a extraer las propiedades y el comportamiento comunes a un determinado tipo de objetos y transformarlas en la definicioacuten de una clase estructurar las clases en jerarquiacuteas constituyen procesos de abstracccioacuten que implican un cambio de mentalidad en la resolucioacuten de los problemas de software que precisan de entrenamiento y de un esfuerzo intenso
El objetivo es el de ensentildear al lector a traducir la descripcioacuten de un problema o situacioacuten que se plantea a coacutedigo a organizar el coacutedigo en funciones a agrupar datos y funciones en clases y las clases en jerarquiacuteas
Una vez entendidos los conceptos baacutesicos la creacioacuten de applets no presentaraacute grandes dificultades si se hace con la ayuda de un Entorno Integrado de Desarrollo como JBuilder de Borland (ahora Inprise) el cual genera casi todo el coacutedigo correspondiente al interfaz dejando al programador la tarea de darle funcionalidad es decir la de definir la respuesta a las distintas acciones
PARADIGMAS DE PROGRAMACIOacuteN Un paradigma de programacioacuten es un modelo baacutesico de disentildeo y desarrollo de programas que permite producir programas con unas directrices especiacuteficas tales como estructura modular fuerte cohesioacuten alta rentabilidad etc Los paradigmas pueden ser considerados como patrones de pensamiento para la resolucioacuten de problemas Desde luego siempre teniendo en cuenta los lenguajes de programacioacuten seguacuten nuestro intereacutes de estudio No es mejor uno que otro sino que cada uno tiene ventajas y desventajas Tambieacuten
hay situaciones donde un paradigma resulta maacutes apropiado que otro Hay multitud de ellos atendiendo a alguna particularidad metodoloacutegica o funcional Cuando un lenguaje refleja bien un paradigma particular se dice que soporta el paradigma y en la praacutectica un lenguaje que soporta correctamente un paradigma es difiacutecil distinguirlo del propio paradigma por lo que se identifica con eacutel
Tipos de paradigmas de programacioacuten Podemos clasificar los paradigmas de programacioacuten en Paradigma imperativo heuristico concurrente funcional loacutegico paradigma basado en objetos
Paradigma imperativo Son aquellos que facilitan los caacutelculos por medio de cambios de estado entendiendo como estado la condicioacuten de una memoria de almacenamiento Los lenguajes
estructurados en bloques se refieren a los aacutembitos anidados es decir los bloques pueden estar anidados dentro de otros bloques y contener sus propias variables Los programas escritos en un lenguaje funcional estaacuten constituidos uacutenicamente por definiciones de funciones entendiendo eacutestas no como subprogramas claacutesicos de un lenguaje imperativo sino como funciones puramente matemaacuteticas en las que se verifican ciertas propiedades como la transparencia referencial (el significado de una expresioacuten depende uacutenicamente del significado de sus subexpresiones) y por tanto la carencia total de efectos laterales El objetivo es conseguir lenguajes expresivos y matemaacuteticamente elegantes en
los que no sea necesario bajar al nivel de la maacutequina para describir el proceso llevado a cabo por el programa y evitando el concepto de estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programa se regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otras cada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas A este tipo de paradigma de programacioacuten se le suele llamar algoriacutetmico Otras caracteriacutesticas propias de estos lenguajes son la no existencia de
asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteracioacuten (lo que obliga en la praacutectica a que todas las repeticiones de instrucciones
se lleven a cabo por medio de funciones recursivas)
Algunos de los lenguajes imperativos son bull C bull C++ bull C bull Basic bull Java bull Perl Paradigma heuristico Define un modelo de resolucioacuten de problemas en el que se incorpora alguacuten componente heuriacutestico sobre la base de una representacioacuten maacutes apropiada de la estructura del problema para su resolucioacuten con teacutecnicas heuriacutesticas Se puede definir como aquel tipo de programacioacuten computacional que aplica para la resolucioacuten de problemas reglas de buena loacutegica (reglas del pulgar) denominadas heuriacutesticas las cuales proporcionan entre varios cursos de accioacuten uno que presenta visos de ser el maacutes prometedor pero no garantiza necesariamente el curso de accioacuten maacutes efectivo La Programacioacuten Heuriacutestica implica una forma de modelizar el problema en lo que respecta a la representacioacuten de su estructura estrategias de buacutesqueda y meacutetodos de resolucioacuten que configuran el Para
Este tipo de programacioacuten se aplica con mayor intensidad en el campo de la
Inteligencia Artificial (IA) y en especial en el de la Ingenieriacutea del
Conocimientodigma Heuriacutestico
La Programacioacuten Heuriacutestica se presenta y utiliza desde diferentes puntos de vista
o Como teacutecnica de buacutesqueda para la obtencioacuten de metas en problemas no
algoriacutetmicos o con algoritmos que generan explosioacuten combinatoria
o Como un meacutetodo aproximado de resolucioacuten de problemas utilizando
funciones de evaluacioacuten de tipo heuriacutestico
o Como meacutetodo de poda para estrategias de programas que juegan aunque
estos meacutetodos no son realmente heuriacutesticos
Paradigma funcional
Sus oriacutegenes provienen del Caacutelculo Lambda (o λ-caacutelculo) una teoriacutea matemaacutetica
elaborada por Alonzo Church como apoyo a sus estudios sobre computabilidad Un
lenguaje funcional es a grandes rasgos un azuacutecar sintaacutectico del Caacutelculo Lambda
El paradigma funcional estaacute basado en el modelo matemaacutetico de composicioacuten funcional En este modelo el resultado de un caacutelculo es la entrada del siguiente y asiacute sucesivamente hasta que una composicioacuten produce el valor deseado No existe el concepto de celda de memoria que es asignada o modificada Maacutes
bien existen valores intermedios que son el resultado de caacutelculos anteriores y las
entradas a caacutelculos subsiguientes Tampoco existen sentencias imperativas y todas las funciones tienen transparencia referencial La programacioacuten funcional incorpora el concepto de funcioacuten como objeto de primera clase lo que significa que las funciones se pueden tratar como datos (pueden pasar como paraacutemetros calculadas y devueltas como valores normales y mezcladas en el caacutelculo con otras formas de datos) En este paradigma el informaacutetico concibe la solucioacuten como una composicioacuten de funciones La forma en que se especifican las funciones puede variar Se pueden especificar procedimentalmente o matemaacuteticamente mediante su definicioacuten sin secuencia de control Un lenguaje funcional es el Lisp
Paradigma loacutegico La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de lenguaje loacutegico es Prolog (Programacioacuten loacutegica) Prolog proveniente del ingleacutes Programming in Logic es un lenguaje loacutegico bastante popular en el medio de investigacioacuten en Inteligencia Artificial Prolog es un lenguaje muy diferente tanto de los imperativos como Fortran Pascal C etc como de los funcionales como Lisp En todos los mencionados las instrucciones se ejecutan normalmente en orden secuencial es decir una a continuacioacuten de otra en el mismo orden en que estaacuten escritas que soacutelo variacutea cuando se alcanza una instruccioacuten de control (un bucle una instruccioacuten condicional o una transferencia) En Prolog las cosas son distintas el orden de ejecucioacuten de las instrucciones no tiene nada que ver con el orden en que fueron escritas Tampoco hay instrucciones de control propiamente dichas Para trabajar con este lenguaje un programador debe acostumbrarse a pensar de una manera muy diferente a la que se utiliza en los lenguajes claacutesicos
Paradigma basado en objetos
La programacioacuten orientada a objetos (OOP por las siglas inglesas de Object- Oriented Programming) es una forma de programar que proliferoacute a partir de los antildeos ochenta La Programacioacuten Orientada a Objetos (POO u OOP seguacuten siglas en ingleacutes) es un paradigma de programacioacuten que define los programas en teacuterminos de clases de objetos objetos que son entidades que combinan estado (es decir datos) comportamiento (esto es procedimientos o meacutetodos) e identidad (propiedad del objeto que lo diferencia del resto) La programacioacuten orientada a objetos expresa un programa como un conjunto de estos objetos que colaboran entre ellos para realizar tareas Esto permite hacer los programas y moacutedulos maacutes faacuteciles de escribir mantener y reutilizar De esta forma un objeto contiene toda la informacioacuten (los denominados atributos) que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de una misma clase al poder tener valores bien diferenciados en sus atributos)
CLASIFICACIONES DE LENGUAJES DE PROGARMACIOacuteN
Lenguaje maacutequina El lenguaje maacutequina es el uacutenico que entiende directamente la computadora utiliza el alfabeto binario que consta de los dos uacutenicos siacutembolos 0 y 1 denominados bits (abreviatura inglesa de diacutegitos binarios) Fue el primer lenguaje utilizado en la programacioacuten de computadoras pero dejoacute de utilizarse por su dificultad y
complicacioacuten siendo sustituido por otros lenguajes maacutes faacuteciles de aprender y utilizar que ademaacutes reducen la posibilidad de cometer errores Lenguaje de bajo nivel Un lenguaje de programacioacuten de bajo nivel es el que proporciona poca o
ninguna abstraccioacuten del microprocesador de un ordenador Consecuentemente es faacutecilmente trasladado a lenguaje de maacutequinaEn general se utiliza este tipo de lenguaje para programar controladores (drivers) La programacioacuten en un lenguaje de bajo nivel como el lenguaje de la maacutequina o el lenguaje simboacutelico tiene ciertas ventajas 1 Mayor adaptacioacuten al equipo 2 Posibilidad de obtener la maacutexima velocidad con miacutenimo uso de memoria Pero tambieacuten tiene importantes inconvenientes Imposibilidad de escribir coacutedigo independiente de la maacutequina Mayor dificultad en la programacioacuten y en la comprensioacuten de los programas
Caracteriacutesticas - Se trabaja a nivel de Microinstrucciones es decir su programacioacuten es al
maacutes fino detalle - Estaacute orientado a la maacutequina Lenguaje de alto nivel Los lenguajes de alto nivel logran la independencia del tipo de maacutequina
y se aproximan al lenguaje natural Se puede decir que el principal problema que
presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen
actualmente en uso Los lenguajes de alto nivel tambieacuten denominados lenguajes
evolucionados surgen con posterioridad a los anteriores con los siguientes objetivos entre otros 1048707 Lograr independencia de la maacutequina pudiendo utilizar un mismo
programa en diferentes equipos con la uacutenica condicioacuten de disponer de un programa
traductor o compilador que lo suministra el fabricante para obtener el programa ejecutable en lenguaje binario de la maacutequina que se trate Ademaacutes no
se necesita conocer el hardware especiacutefico de dicha maacutequina
TRADUCTORES
TRADUCTORES Explicamos el proceso maacutes importante a la hora de hacer
funcionar un programa realizado en lenguajes de alto y medio nivel Cuando programamos en lenguajes de alto nivel lo que
estamos haciendo en realidad es el coacutedigo fuente de ese programa Este coacutedigo fuente debe ser traducido a binario para que las
instrucciones que contienen puedan ser entendidas y ejecutadas por la maacutequina Para esto existe un programa encargado de realizar la
traduccioacuten llamado traductor del lenguaje Estos traductores pueden ser de dos tipos Ensambladores
Son los encargados de traducir los programas escritos en lenguaje ensamblador alenguaje maacutequina
Compiladores
Son programas que leen el coacutedigo fuente y lo traducen o convierten a otro lenguajeEstos programas te muestran los errores existentes en el coacutedigo fuente
Etapas del proceso de compilacioacuten
Edicioacuten Esta fase consiste en escribir el programa empleando alguacuten lenguaje y un
editor Como resultado nos daraacute el coacutedigo fuente de nuestro programa
Compilacioacuten En esta fase se traduce el coacutedigo fuente obtenido en la fase anterior a
coacutedigo maacutequina Si no se produce ninguacuten error se obtiene el coacutedigo objeto En caso derrores el compilador los mostrariacutea para ayudarnos a corregirlos y se procederiacutea a su
compilacioacuten de nuevo una vez corregidos
Linkado Esta fase consiste en unir el archivo generado en la fase dos con determinadas
rutinas internas del lenguaje obteniendo el programa ejecutable
Existen dos tipos de linkados
linkado estaacutetico Los binarios de las libreriacuteas se antildeaden a nuestros binarios compilados
generando el archivo ejecutable
Linkado dinaacutemico no se antildeaden las libreriacuteas a nuestro binario sino que haraacute que se
carguen en memoria las libreriacuteas que en ese momento se necesiten
Una vez traducido compilado y linkado el archivo esta listo para su ejecucioacuten donde
tambieacuten podraacuten surgir problemas y fallos para los cuales tendriacuteamos que volver a
realizar todo el proceso anteriormente citado de modo que puedan ser corregidos
Por este motivo es importante realizar numerosas pruebas en tiempo de ejecucioacuten antes
de presentar el programa al cliente
Otro sistema para la ejecucioacuten de nuestro coacutedigo fuente es mediante el uso de
inteacuterpretes (estos no se encontrariacutean dentro de los traductores)
Inteacuterpretes Los inteacuterpretes realizan la traduccioacuten y ejecucioacuten de forma
simultanea es decir un inteacuterprete lee el coacutedigo fuente y lo va ejecutando al mismo
tiempo Las diferencias entre un compilador y un inteacuterprete
baacutesicamente son bull Un programa compilado puede funcionar por si solo
mientras que un coacutedigo traducido por un inteacuterprete no puede funcionar sin eacuteste bull Un programa traducido por un inteacuterprete puede ser
ejecutado en cualquier maacutequina ya que cada vez que se ejecuta el inteacuterprete tiene
que compilarlo bull Un archivo compilado es mucho maacutes raacutepido que uno
interpretado
Anexo Evaluacion
iquest que es la poo
La programacioacuten Orientada a objetos (POO) es una forma especial de programar maacutes cercana a como expresariacuteamos las cosas en la vida real que otros tipos de programacioacuten Con la POO tenemos que aprender a pensar las cosas de una manera distinta para escribir nuestros programas en teacuterminos de objetos propiedades meacutetodos y otras cosas que veremos raacutepidamente para aclarar conceptos y dar una pequentildea base que permita soltarnos un poco con este tipo de programacioacuten
iquest que es programacioacuten
Un lenguaje de programacioacuten es un idioma artificial disentildeado para expresar computaciones que pueden ser llevadas a cabo por maacutequinas como las computadoras Pueden usarse para crear programas que controlen el comportamiento fiacutesico y loacutegico de una maacutequina para expresar algoritmos con precisioacuten o como modo de comunicacioacuten humana Estaacute formado de un conjunto de siacutembolos y reglas sintaacutecticas y semaacutenticas que definen su estructura y el significado de sus elementos y expresiones Al proceso por el cual se escribe se prueba se depura se compila y se mantiene el coacutedigo fuente de un programa informaacutetico se le llama programacioacuten
iquestQueacute es compilador
Un compilador es un programa informaacutetico que traduce un programa escrito en un lenguaje de programacioacuten a otro lenguaje de programacioacuten generando un programa equivalente que la maacutequina seraacute capaz de interpretar Usualmente el segundo lenguaje es lenguaje de maacutequina pero tambieacuten puede ser simplemente texto Este proceso de traduccioacuten se conoce como compilacioacuten
Un compilador es un programa que permite traducir el coacutedigo fuente de un programa en lenguaje de alto nivel a otro lenguaje de nivel inferior (tiacutepicamente lenguaje de maacutequina) De esta manera un programador puede disentildear un programa en un lenguaje mucho maacutes cercano a como piensa un ser humano para luego compilarlo a un programa maacutes manejable por una computadora
menciona una paradigma de programacioacuten
Paradigama logico
La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica
Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por
expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten
interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de
lenguaje loacutegico es Prolog (Programacioacuten loacutegica)
iquest que es lenguaje java La implementacioacuten original y de referencia del compilador la
maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible
PARADIGMAS DE PROGRAMACIOacuteN Un paradigma de programacioacuten es un modelo baacutesico de disentildeo y desarrollo de programas que permite producir programas con unas directrices especiacuteficas tales como estructura modular fuerte cohesioacuten alta rentabilidad etc Los paradigmas pueden ser considerados como patrones de pensamiento para la resolucioacuten de problemas Desde luego siempre teniendo en cuenta los lenguajes de programacioacuten seguacuten nuestro intereacutes de estudio No es mejor uno que otro sino que cada uno tiene ventajas y desventajas Tambieacuten
hay situaciones donde un paradigma resulta maacutes apropiado que otro Hay multitud de ellos atendiendo a alguna particularidad metodoloacutegica o funcional Cuando un lenguaje refleja bien un paradigma particular se dice que soporta el paradigma y en la praacutectica un lenguaje que soporta correctamente un paradigma es difiacutecil distinguirlo del propio paradigma por lo que se identifica con eacutel
Tipos de paradigmas de programacioacuten Podemos clasificar los paradigmas de programacioacuten en Paradigma imperativo heuristico concurrente funcional loacutegico paradigma basado en objetos
Paradigma imperativo Son aquellos que facilitan los caacutelculos por medio de cambios de estado entendiendo como estado la condicioacuten de una memoria de almacenamiento Los lenguajes
estructurados en bloques se refieren a los aacutembitos anidados es decir los bloques pueden estar anidados dentro de otros bloques y contener sus propias variables Los programas escritos en un lenguaje funcional estaacuten constituidos uacutenicamente por definiciones de funciones entendiendo eacutestas no como subprogramas claacutesicos de un lenguaje imperativo sino como funciones puramente matemaacuteticas en las que se verifican ciertas propiedades como la transparencia referencial (el significado de una expresioacuten depende uacutenicamente del significado de sus subexpresiones) y por tanto la carencia total de efectos laterales El objetivo es conseguir lenguajes expresivos y matemaacuteticamente elegantes en
los que no sea necesario bajar al nivel de la maacutequina para describir el proceso llevado a cabo por el programa y evitando el concepto de estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programa se regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otras cada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas A este tipo de paradigma de programacioacuten se le suele llamar algoriacutetmico Otras caracteriacutesticas propias de estos lenguajes son la no existencia de
asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteracioacuten (lo que obliga en la praacutectica a que todas las repeticiones de instrucciones
se lleven a cabo por medio de funciones recursivas)
Algunos de los lenguajes imperativos son bull C bull C++ bull C bull Basic bull Java bull Perl Paradigma heuristico Define un modelo de resolucioacuten de problemas en el que se incorpora alguacuten componente heuriacutestico sobre la base de una representacioacuten maacutes apropiada de la estructura del problema para su resolucioacuten con teacutecnicas heuriacutesticas Se puede definir como aquel tipo de programacioacuten computacional que aplica para la resolucioacuten de problemas reglas de buena loacutegica (reglas del pulgar) denominadas heuriacutesticas las cuales proporcionan entre varios cursos de accioacuten uno que presenta visos de ser el maacutes prometedor pero no garantiza necesariamente el curso de accioacuten maacutes efectivo La Programacioacuten Heuriacutestica implica una forma de modelizar el problema en lo que respecta a la representacioacuten de su estructura estrategias de buacutesqueda y meacutetodos de resolucioacuten que configuran el Para
Este tipo de programacioacuten se aplica con mayor intensidad en el campo de la
Inteligencia Artificial (IA) y en especial en el de la Ingenieriacutea del
Conocimientodigma Heuriacutestico
La Programacioacuten Heuriacutestica se presenta y utiliza desde diferentes puntos de vista
o Como teacutecnica de buacutesqueda para la obtencioacuten de metas en problemas no
algoriacutetmicos o con algoritmos que generan explosioacuten combinatoria
o Como un meacutetodo aproximado de resolucioacuten de problemas utilizando
funciones de evaluacioacuten de tipo heuriacutestico
o Como meacutetodo de poda para estrategias de programas que juegan aunque
estos meacutetodos no son realmente heuriacutesticos
Paradigma funcional
Sus oriacutegenes provienen del Caacutelculo Lambda (o λ-caacutelculo) una teoriacutea matemaacutetica
elaborada por Alonzo Church como apoyo a sus estudios sobre computabilidad Un
lenguaje funcional es a grandes rasgos un azuacutecar sintaacutectico del Caacutelculo Lambda
El paradigma funcional estaacute basado en el modelo matemaacutetico de composicioacuten funcional En este modelo el resultado de un caacutelculo es la entrada del siguiente y asiacute sucesivamente hasta que una composicioacuten produce el valor deseado No existe el concepto de celda de memoria que es asignada o modificada Maacutes
bien existen valores intermedios que son el resultado de caacutelculos anteriores y las
entradas a caacutelculos subsiguientes Tampoco existen sentencias imperativas y todas las funciones tienen transparencia referencial La programacioacuten funcional incorpora el concepto de funcioacuten como objeto de primera clase lo que significa que las funciones se pueden tratar como datos (pueden pasar como paraacutemetros calculadas y devueltas como valores normales y mezcladas en el caacutelculo con otras formas de datos) En este paradigma el informaacutetico concibe la solucioacuten como una composicioacuten de funciones La forma en que se especifican las funciones puede variar Se pueden especificar procedimentalmente o matemaacuteticamente mediante su definicioacuten sin secuencia de control Un lenguaje funcional es el Lisp
Paradigma loacutegico La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de lenguaje loacutegico es Prolog (Programacioacuten loacutegica) Prolog proveniente del ingleacutes Programming in Logic es un lenguaje loacutegico bastante popular en el medio de investigacioacuten en Inteligencia Artificial Prolog es un lenguaje muy diferente tanto de los imperativos como Fortran Pascal C etc como de los funcionales como Lisp En todos los mencionados las instrucciones se ejecutan normalmente en orden secuencial es decir una a continuacioacuten de otra en el mismo orden en que estaacuten escritas que soacutelo variacutea cuando se alcanza una instruccioacuten de control (un bucle una instruccioacuten condicional o una transferencia) En Prolog las cosas son distintas el orden de ejecucioacuten de las instrucciones no tiene nada que ver con el orden en que fueron escritas Tampoco hay instrucciones de control propiamente dichas Para trabajar con este lenguaje un programador debe acostumbrarse a pensar de una manera muy diferente a la que se utiliza en los lenguajes claacutesicos
Paradigma basado en objetos
La programacioacuten orientada a objetos (OOP por las siglas inglesas de Object- Oriented Programming) es una forma de programar que proliferoacute a partir de los antildeos ochenta La Programacioacuten Orientada a Objetos (POO u OOP seguacuten siglas en ingleacutes) es un paradigma de programacioacuten que define los programas en teacuterminos de clases de objetos objetos que son entidades que combinan estado (es decir datos) comportamiento (esto es procedimientos o meacutetodos) e identidad (propiedad del objeto que lo diferencia del resto) La programacioacuten orientada a objetos expresa un programa como un conjunto de estos objetos que colaboran entre ellos para realizar tareas Esto permite hacer los programas y moacutedulos maacutes faacuteciles de escribir mantener y reutilizar De esta forma un objeto contiene toda la informacioacuten (los denominados atributos) que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de una misma clase al poder tener valores bien diferenciados en sus atributos)
CLASIFICACIONES DE LENGUAJES DE PROGARMACIOacuteN
Lenguaje maacutequina El lenguaje maacutequina es el uacutenico que entiende directamente la computadora utiliza el alfabeto binario que consta de los dos uacutenicos siacutembolos 0 y 1 denominados bits (abreviatura inglesa de diacutegitos binarios) Fue el primer lenguaje utilizado en la programacioacuten de computadoras pero dejoacute de utilizarse por su dificultad y
complicacioacuten siendo sustituido por otros lenguajes maacutes faacuteciles de aprender y utilizar que ademaacutes reducen la posibilidad de cometer errores Lenguaje de bajo nivel Un lenguaje de programacioacuten de bajo nivel es el que proporciona poca o
ninguna abstraccioacuten del microprocesador de un ordenador Consecuentemente es faacutecilmente trasladado a lenguaje de maacutequinaEn general se utiliza este tipo de lenguaje para programar controladores (drivers) La programacioacuten en un lenguaje de bajo nivel como el lenguaje de la maacutequina o el lenguaje simboacutelico tiene ciertas ventajas 1 Mayor adaptacioacuten al equipo 2 Posibilidad de obtener la maacutexima velocidad con miacutenimo uso de memoria Pero tambieacuten tiene importantes inconvenientes Imposibilidad de escribir coacutedigo independiente de la maacutequina Mayor dificultad en la programacioacuten y en la comprensioacuten de los programas
Caracteriacutesticas - Se trabaja a nivel de Microinstrucciones es decir su programacioacuten es al
maacutes fino detalle - Estaacute orientado a la maacutequina Lenguaje de alto nivel Los lenguajes de alto nivel logran la independencia del tipo de maacutequina
y se aproximan al lenguaje natural Se puede decir que el principal problema que
presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen
actualmente en uso Los lenguajes de alto nivel tambieacuten denominados lenguajes
evolucionados surgen con posterioridad a los anteriores con los siguientes objetivos entre otros 1048707 Lograr independencia de la maacutequina pudiendo utilizar un mismo
programa en diferentes equipos con la uacutenica condicioacuten de disponer de un programa
traductor o compilador que lo suministra el fabricante para obtener el programa ejecutable en lenguaje binario de la maacutequina que se trate Ademaacutes no
se necesita conocer el hardware especiacutefico de dicha maacutequina
TRADUCTORES
TRADUCTORES Explicamos el proceso maacutes importante a la hora de hacer
funcionar un programa realizado en lenguajes de alto y medio nivel Cuando programamos en lenguajes de alto nivel lo que
estamos haciendo en realidad es el coacutedigo fuente de ese programa Este coacutedigo fuente debe ser traducido a binario para que las
instrucciones que contienen puedan ser entendidas y ejecutadas por la maacutequina Para esto existe un programa encargado de realizar la
traduccioacuten llamado traductor del lenguaje Estos traductores pueden ser de dos tipos Ensambladores
Son los encargados de traducir los programas escritos en lenguaje ensamblador alenguaje maacutequina
Compiladores
Son programas que leen el coacutedigo fuente y lo traducen o convierten a otro lenguajeEstos programas te muestran los errores existentes en el coacutedigo fuente
Etapas del proceso de compilacioacuten
Edicioacuten Esta fase consiste en escribir el programa empleando alguacuten lenguaje y un
editor Como resultado nos daraacute el coacutedigo fuente de nuestro programa
Compilacioacuten En esta fase se traduce el coacutedigo fuente obtenido en la fase anterior a
coacutedigo maacutequina Si no se produce ninguacuten error se obtiene el coacutedigo objeto En caso derrores el compilador los mostrariacutea para ayudarnos a corregirlos y se procederiacutea a su
compilacioacuten de nuevo una vez corregidos
Linkado Esta fase consiste en unir el archivo generado en la fase dos con determinadas
rutinas internas del lenguaje obteniendo el programa ejecutable
Existen dos tipos de linkados
linkado estaacutetico Los binarios de las libreriacuteas se antildeaden a nuestros binarios compilados
generando el archivo ejecutable
Linkado dinaacutemico no se antildeaden las libreriacuteas a nuestro binario sino que haraacute que se
carguen en memoria las libreriacuteas que en ese momento se necesiten
Una vez traducido compilado y linkado el archivo esta listo para su ejecucioacuten donde
tambieacuten podraacuten surgir problemas y fallos para los cuales tendriacuteamos que volver a
realizar todo el proceso anteriormente citado de modo que puedan ser corregidos
Por este motivo es importante realizar numerosas pruebas en tiempo de ejecucioacuten antes
de presentar el programa al cliente
Otro sistema para la ejecucioacuten de nuestro coacutedigo fuente es mediante el uso de
inteacuterpretes (estos no se encontrariacutean dentro de los traductores)
Inteacuterpretes Los inteacuterpretes realizan la traduccioacuten y ejecucioacuten de forma
simultanea es decir un inteacuterprete lee el coacutedigo fuente y lo va ejecutando al mismo
tiempo Las diferencias entre un compilador y un inteacuterprete
baacutesicamente son bull Un programa compilado puede funcionar por si solo
mientras que un coacutedigo traducido por un inteacuterprete no puede funcionar sin eacuteste bull Un programa traducido por un inteacuterprete puede ser
ejecutado en cualquier maacutequina ya que cada vez que se ejecuta el inteacuterprete tiene
que compilarlo bull Un archivo compilado es mucho maacutes raacutepido que uno
interpretado
Anexo Evaluacion
iquest que es la poo
La programacioacuten Orientada a objetos (POO) es una forma especial de programar maacutes cercana a como expresariacuteamos las cosas en la vida real que otros tipos de programacioacuten Con la POO tenemos que aprender a pensar las cosas de una manera distinta para escribir nuestros programas en teacuterminos de objetos propiedades meacutetodos y otras cosas que veremos raacutepidamente para aclarar conceptos y dar una pequentildea base que permita soltarnos un poco con este tipo de programacioacuten
iquest que es programacioacuten
Un lenguaje de programacioacuten es un idioma artificial disentildeado para expresar computaciones que pueden ser llevadas a cabo por maacutequinas como las computadoras Pueden usarse para crear programas que controlen el comportamiento fiacutesico y loacutegico de una maacutequina para expresar algoritmos con precisioacuten o como modo de comunicacioacuten humana Estaacute formado de un conjunto de siacutembolos y reglas sintaacutecticas y semaacutenticas que definen su estructura y el significado de sus elementos y expresiones Al proceso por el cual se escribe se prueba se depura se compila y se mantiene el coacutedigo fuente de un programa informaacutetico se le llama programacioacuten
iquestQueacute es compilador
Un compilador es un programa informaacutetico que traduce un programa escrito en un lenguaje de programacioacuten a otro lenguaje de programacioacuten generando un programa equivalente que la maacutequina seraacute capaz de interpretar Usualmente el segundo lenguaje es lenguaje de maacutequina pero tambieacuten puede ser simplemente texto Este proceso de traduccioacuten se conoce como compilacioacuten
Un compilador es un programa que permite traducir el coacutedigo fuente de un programa en lenguaje de alto nivel a otro lenguaje de nivel inferior (tiacutepicamente lenguaje de maacutequina) De esta manera un programador puede disentildear un programa en un lenguaje mucho maacutes cercano a como piensa un ser humano para luego compilarlo a un programa maacutes manejable por una computadora
menciona una paradigma de programacioacuten
Paradigama logico
La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica
Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por
expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten
interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de
lenguaje loacutegico es Prolog (Programacioacuten loacutegica)
iquest que es lenguaje java La implementacioacuten original y de referencia del compilador la
maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible
estructurados en bloques se refieren a los aacutembitos anidados es decir los bloques pueden estar anidados dentro de otros bloques y contener sus propias variables Los programas escritos en un lenguaje funcional estaacuten constituidos uacutenicamente por definiciones de funciones entendiendo eacutestas no como subprogramas claacutesicos de un lenguaje imperativo sino como funciones puramente matemaacuteticas en las que se verifican ciertas propiedades como la transparencia referencial (el significado de una expresioacuten depende uacutenicamente del significado de sus subexpresiones) y por tanto la carencia total de efectos laterales El objetivo es conseguir lenguajes expresivos y matemaacuteticamente elegantes en
los que no sea necesario bajar al nivel de la maacutequina para describir el proceso llevado a cabo por el programa y evitando el concepto de estado del coacutemputo La secuencia de computaciones llevadas a cabo por el programa se regiriacutea uacutenica y exclusivamente por la reescritura de definiciones maacutes amplias a otras cada vez maacutes concretas y definidas usando lo que se denominan definiciones dirigidas A este tipo de paradigma de programacioacuten se le suele llamar algoriacutetmico Otras caracteriacutesticas propias de estos lenguajes son la no existencia de
asignaciones de variables y la falta de construcciones estructuradas como la secuencia o la iteracioacuten (lo que obliga en la praacutectica a que todas las repeticiones de instrucciones
se lleven a cabo por medio de funciones recursivas)
Algunos de los lenguajes imperativos son bull C bull C++ bull C bull Basic bull Java bull Perl Paradigma heuristico Define un modelo de resolucioacuten de problemas en el que se incorpora alguacuten componente heuriacutestico sobre la base de una representacioacuten maacutes apropiada de la estructura del problema para su resolucioacuten con teacutecnicas heuriacutesticas Se puede definir como aquel tipo de programacioacuten computacional que aplica para la resolucioacuten de problemas reglas de buena loacutegica (reglas del pulgar) denominadas heuriacutesticas las cuales proporcionan entre varios cursos de accioacuten uno que presenta visos de ser el maacutes prometedor pero no garantiza necesariamente el curso de accioacuten maacutes efectivo La Programacioacuten Heuriacutestica implica una forma de modelizar el problema en lo que respecta a la representacioacuten de su estructura estrategias de buacutesqueda y meacutetodos de resolucioacuten que configuran el Para
Este tipo de programacioacuten se aplica con mayor intensidad en el campo de la
Inteligencia Artificial (IA) y en especial en el de la Ingenieriacutea del
Conocimientodigma Heuriacutestico
La Programacioacuten Heuriacutestica se presenta y utiliza desde diferentes puntos de vista
o Como teacutecnica de buacutesqueda para la obtencioacuten de metas en problemas no
algoriacutetmicos o con algoritmos que generan explosioacuten combinatoria
o Como un meacutetodo aproximado de resolucioacuten de problemas utilizando
funciones de evaluacioacuten de tipo heuriacutestico
o Como meacutetodo de poda para estrategias de programas que juegan aunque
estos meacutetodos no son realmente heuriacutesticos
Paradigma funcional
Sus oriacutegenes provienen del Caacutelculo Lambda (o λ-caacutelculo) una teoriacutea matemaacutetica
elaborada por Alonzo Church como apoyo a sus estudios sobre computabilidad Un
lenguaje funcional es a grandes rasgos un azuacutecar sintaacutectico del Caacutelculo Lambda
El paradigma funcional estaacute basado en el modelo matemaacutetico de composicioacuten funcional En este modelo el resultado de un caacutelculo es la entrada del siguiente y asiacute sucesivamente hasta que una composicioacuten produce el valor deseado No existe el concepto de celda de memoria que es asignada o modificada Maacutes
bien existen valores intermedios que son el resultado de caacutelculos anteriores y las
entradas a caacutelculos subsiguientes Tampoco existen sentencias imperativas y todas las funciones tienen transparencia referencial La programacioacuten funcional incorpora el concepto de funcioacuten como objeto de primera clase lo que significa que las funciones se pueden tratar como datos (pueden pasar como paraacutemetros calculadas y devueltas como valores normales y mezcladas en el caacutelculo con otras formas de datos) En este paradigma el informaacutetico concibe la solucioacuten como una composicioacuten de funciones La forma en que se especifican las funciones puede variar Se pueden especificar procedimentalmente o matemaacuteticamente mediante su definicioacuten sin secuencia de control Un lenguaje funcional es el Lisp
Paradigma loacutegico La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de lenguaje loacutegico es Prolog (Programacioacuten loacutegica) Prolog proveniente del ingleacutes Programming in Logic es un lenguaje loacutegico bastante popular en el medio de investigacioacuten en Inteligencia Artificial Prolog es un lenguaje muy diferente tanto de los imperativos como Fortran Pascal C etc como de los funcionales como Lisp En todos los mencionados las instrucciones se ejecutan normalmente en orden secuencial es decir una a continuacioacuten de otra en el mismo orden en que estaacuten escritas que soacutelo variacutea cuando se alcanza una instruccioacuten de control (un bucle una instruccioacuten condicional o una transferencia) En Prolog las cosas son distintas el orden de ejecucioacuten de las instrucciones no tiene nada que ver con el orden en que fueron escritas Tampoco hay instrucciones de control propiamente dichas Para trabajar con este lenguaje un programador debe acostumbrarse a pensar de una manera muy diferente a la que se utiliza en los lenguajes claacutesicos
Paradigma basado en objetos
La programacioacuten orientada a objetos (OOP por las siglas inglesas de Object- Oriented Programming) es una forma de programar que proliferoacute a partir de los antildeos ochenta La Programacioacuten Orientada a Objetos (POO u OOP seguacuten siglas en ingleacutes) es un paradigma de programacioacuten que define los programas en teacuterminos de clases de objetos objetos que son entidades que combinan estado (es decir datos) comportamiento (esto es procedimientos o meacutetodos) e identidad (propiedad del objeto que lo diferencia del resto) La programacioacuten orientada a objetos expresa un programa como un conjunto de estos objetos que colaboran entre ellos para realizar tareas Esto permite hacer los programas y moacutedulos maacutes faacuteciles de escribir mantener y reutilizar De esta forma un objeto contiene toda la informacioacuten (los denominados atributos) que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de una misma clase al poder tener valores bien diferenciados en sus atributos)
CLASIFICACIONES DE LENGUAJES DE PROGARMACIOacuteN
Lenguaje maacutequina El lenguaje maacutequina es el uacutenico que entiende directamente la computadora utiliza el alfabeto binario que consta de los dos uacutenicos siacutembolos 0 y 1 denominados bits (abreviatura inglesa de diacutegitos binarios) Fue el primer lenguaje utilizado en la programacioacuten de computadoras pero dejoacute de utilizarse por su dificultad y
complicacioacuten siendo sustituido por otros lenguajes maacutes faacuteciles de aprender y utilizar que ademaacutes reducen la posibilidad de cometer errores Lenguaje de bajo nivel Un lenguaje de programacioacuten de bajo nivel es el que proporciona poca o
ninguna abstraccioacuten del microprocesador de un ordenador Consecuentemente es faacutecilmente trasladado a lenguaje de maacutequinaEn general se utiliza este tipo de lenguaje para programar controladores (drivers) La programacioacuten en un lenguaje de bajo nivel como el lenguaje de la maacutequina o el lenguaje simboacutelico tiene ciertas ventajas 1 Mayor adaptacioacuten al equipo 2 Posibilidad de obtener la maacutexima velocidad con miacutenimo uso de memoria Pero tambieacuten tiene importantes inconvenientes Imposibilidad de escribir coacutedigo independiente de la maacutequina Mayor dificultad en la programacioacuten y en la comprensioacuten de los programas
Caracteriacutesticas - Se trabaja a nivel de Microinstrucciones es decir su programacioacuten es al
maacutes fino detalle - Estaacute orientado a la maacutequina Lenguaje de alto nivel Los lenguajes de alto nivel logran la independencia del tipo de maacutequina
y se aproximan al lenguaje natural Se puede decir que el principal problema que
presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen
actualmente en uso Los lenguajes de alto nivel tambieacuten denominados lenguajes
evolucionados surgen con posterioridad a los anteriores con los siguientes objetivos entre otros 1048707 Lograr independencia de la maacutequina pudiendo utilizar un mismo
programa en diferentes equipos con la uacutenica condicioacuten de disponer de un programa
traductor o compilador que lo suministra el fabricante para obtener el programa ejecutable en lenguaje binario de la maacutequina que se trate Ademaacutes no
se necesita conocer el hardware especiacutefico de dicha maacutequina
TRADUCTORES
TRADUCTORES Explicamos el proceso maacutes importante a la hora de hacer
funcionar un programa realizado en lenguajes de alto y medio nivel Cuando programamos en lenguajes de alto nivel lo que
estamos haciendo en realidad es el coacutedigo fuente de ese programa Este coacutedigo fuente debe ser traducido a binario para que las
instrucciones que contienen puedan ser entendidas y ejecutadas por la maacutequina Para esto existe un programa encargado de realizar la
traduccioacuten llamado traductor del lenguaje Estos traductores pueden ser de dos tipos Ensambladores
Son los encargados de traducir los programas escritos en lenguaje ensamblador alenguaje maacutequina
Compiladores
Son programas que leen el coacutedigo fuente y lo traducen o convierten a otro lenguajeEstos programas te muestran los errores existentes en el coacutedigo fuente
Etapas del proceso de compilacioacuten
Edicioacuten Esta fase consiste en escribir el programa empleando alguacuten lenguaje y un
editor Como resultado nos daraacute el coacutedigo fuente de nuestro programa
Compilacioacuten En esta fase se traduce el coacutedigo fuente obtenido en la fase anterior a
coacutedigo maacutequina Si no se produce ninguacuten error se obtiene el coacutedigo objeto En caso derrores el compilador los mostrariacutea para ayudarnos a corregirlos y se procederiacutea a su
compilacioacuten de nuevo una vez corregidos
Linkado Esta fase consiste en unir el archivo generado en la fase dos con determinadas
rutinas internas del lenguaje obteniendo el programa ejecutable
Existen dos tipos de linkados
linkado estaacutetico Los binarios de las libreriacuteas se antildeaden a nuestros binarios compilados
generando el archivo ejecutable
Linkado dinaacutemico no se antildeaden las libreriacuteas a nuestro binario sino que haraacute que se
carguen en memoria las libreriacuteas que en ese momento se necesiten
Una vez traducido compilado y linkado el archivo esta listo para su ejecucioacuten donde
tambieacuten podraacuten surgir problemas y fallos para los cuales tendriacuteamos que volver a
realizar todo el proceso anteriormente citado de modo que puedan ser corregidos
Por este motivo es importante realizar numerosas pruebas en tiempo de ejecucioacuten antes
de presentar el programa al cliente
Otro sistema para la ejecucioacuten de nuestro coacutedigo fuente es mediante el uso de
inteacuterpretes (estos no se encontrariacutean dentro de los traductores)
Inteacuterpretes Los inteacuterpretes realizan la traduccioacuten y ejecucioacuten de forma
simultanea es decir un inteacuterprete lee el coacutedigo fuente y lo va ejecutando al mismo
tiempo Las diferencias entre un compilador y un inteacuterprete
baacutesicamente son bull Un programa compilado puede funcionar por si solo
mientras que un coacutedigo traducido por un inteacuterprete no puede funcionar sin eacuteste bull Un programa traducido por un inteacuterprete puede ser
ejecutado en cualquier maacutequina ya que cada vez que se ejecuta el inteacuterprete tiene
que compilarlo bull Un archivo compilado es mucho maacutes raacutepido que uno
interpretado
Anexo Evaluacion
iquest que es la poo
La programacioacuten Orientada a objetos (POO) es una forma especial de programar maacutes cercana a como expresariacuteamos las cosas en la vida real que otros tipos de programacioacuten Con la POO tenemos que aprender a pensar las cosas de una manera distinta para escribir nuestros programas en teacuterminos de objetos propiedades meacutetodos y otras cosas que veremos raacutepidamente para aclarar conceptos y dar una pequentildea base que permita soltarnos un poco con este tipo de programacioacuten
iquest que es programacioacuten
Un lenguaje de programacioacuten es un idioma artificial disentildeado para expresar computaciones que pueden ser llevadas a cabo por maacutequinas como las computadoras Pueden usarse para crear programas que controlen el comportamiento fiacutesico y loacutegico de una maacutequina para expresar algoritmos con precisioacuten o como modo de comunicacioacuten humana Estaacute formado de un conjunto de siacutembolos y reglas sintaacutecticas y semaacutenticas que definen su estructura y el significado de sus elementos y expresiones Al proceso por el cual se escribe se prueba se depura se compila y se mantiene el coacutedigo fuente de un programa informaacutetico se le llama programacioacuten
iquestQueacute es compilador
Un compilador es un programa informaacutetico que traduce un programa escrito en un lenguaje de programacioacuten a otro lenguaje de programacioacuten generando un programa equivalente que la maacutequina seraacute capaz de interpretar Usualmente el segundo lenguaje es lenguaje de maacutequina pero tambieacuten puede ser simplemente texto Este proceso de traduccioacuten se conoce como compilacioacuten
Un compilador es un programa que permite traducir el coacutedigo fuente de un programa en lenguaje de alto nivel a otro lenguaje de nivel inferior (tiacutepicamente lenguaje de maacutequina) De esta manera un programador puede disentildear un programa en un lenguaje mucho maacutes cercano a como piensa un ser humano para luego compilarlo a un programa maacutes manejable por una computadora
menciona una paradigma de programacioacuten
Paradigama logico
La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica
Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por
expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten
interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de
lenguaje loacutegico es Prolog (Programacioacuten loacutegica)
iquest que es lenguaje java La implementacioacuten original y de referencia del compilador la
maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible
Algunos de los lenguajes imperativos son bull C bull C++ bull C bull Basic bull Java bull Perl Paradigma heuristico Define un modelo de resolucioacuten de problemas en el que se incorpora alguacuten componente heuriacutestico sobre la base de una representacioacuten maacutes apropiada de la estructura del problema para su resolucioacuten con teacutecnicas heuriacutesticas Se puede definir como aquel tipo de programacioacuten computacional que aplica para la resolucioacuten de problemas reglas de buena loacutegica (reglas del pulgar) denominadas heuriacutesticas las cuales proporcionan entre varios cursos de accioacuten uno que presenta visos de ser el maacutes prometedor pero no garantiza necesariamente el curso de accioacuten maacutes efectivo La Programacioacuten Heuriacutestica implica una forma de modelizar el problema en lo que respecta a la representacioacuten de su estructura estrategias de buacutesqueda y meacutetodos de resolucioacuten que configuran el Para
Este tipo de programacioacuten se aplica con mayor intensidad en el campo de la
Inteligencia Artificial (IA) y en especial en el de la Ingenieriacutea del
Conocimientodigma Heuriacutestico
La Programacioacuten Heuriacutestica se presenta y utiliza desde diferentes puntos de vista
o Como teacutecnica de buacutesqueda para la obtencioacuten de metas en problemas no
algoriacutetmicos o con algoritmos que generan explosioacuten combinatoria
o Como un meacutetodo aproximado de resolucioacuten de problemas utilizando
funciones de evaluacioacuten de tipo heuriacutestico
o Como meacutetodo de poda para estrategias de programas que juegan aunque
estos meacutetodos no son realmente heuriacutesticos
Paradigma funcional
Sus oriacutegenes provienen del Caacutelculo Lambda (o λ-caacutelculo) una teoriacutea matemaacutetica
elaborada por Alonzo Church como apoyo a sus estudios sobre computabilidad Un
lenguaje funcional es a grandes rasgos un azuacutecar sintaacutectico del Caacutelculo Lambda
El paradigma funcional estaacute basado en el modelo matemaacutetico de composicioacuten funcional En este modelo el resultado de un caacutelculo es la entrada del siguiente y asiacute sucesivamente hasta que una composicioacuten produce el valor deseado No existe el concepto de celda de memoria que es asignada o modificada Maacutes
bien existen valores intermedios que son el resultado de caacutelculos anteriores y las
entradas a caacutelculos subsiguientes Tampoco existen sentencias imperativas y todas las funciones tienen transparencia referencial La programacioacuten funcional incorpora el concepto de funcioacuten como objeto de primera clase lo que significa que las funciones se pueden tratar como datos (pueden pasar como paraacutemetros calculadas y devueltas como valores normales y mezcladas en el caacutelculo con otras formas de datos) En este paradigma el informaacutetico concibe la solucioacuten como una composicioacuten de funciones La forma en que se especifican las funciones puede variar Se pueden especificar procedimentalmente o matemaacuteticamente mediante su definicioacuten sin secuencia de control Un lenguaje funcional es el Lisp
Paradigma loacutegico La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de lenguaje loacutegico es Prolog (Programacioacuten loacutegica) Prolog proveniente del ingleacutes Programming in Logic es un lenguaje loacutegico bastante popular en el medio de investigacioacuten en Inteligencia Artificial Prolog es un lenguaje muy diferente tanto de los imperativos como Fortran Pascal C etc como de los funcionales como Lisp En todos los mencionados las instrucciones se ejecutan normalmente en orden secuencial es decir una a continuacioacuten de otra en el mismo orden en que estaacuten escritas que soacutelo variacutea cuando se alcanza una instruccioacuten de control (un bucle una instruccioacuten condicional o una transferencia) En Prolog las cosas son distintas el orden de ejecucioacuten de las instrucciones no tiene nada que ver con el orden en que fueron escritas Tampoco hay instrucciones de control propiamente dichas Para trabajar con este lenguaje un programador debe acostumbrarse a pensar de una manera muy diferente a la que se utiliza en los lenguajes claacutesicos
Paradigma basado en objetos
La programacioacuten orientada a objetos (OOP por las siglas inglesas de Object- Oriented Programming) es una forma de programar que proliferoacute a partir de los antildeos ochenta La Programacioacuten Orientada a Objetos (POO u OOP seguacuten siglas en ingleacutes) es un paradigma de programacioacuten que define los programas en teacuterminos de clases de objetos objetos que son entidades que combinan estado (es decir datos) comportamiento (esto es procedimientos o meacutetodos) e identidad (propiedad del objeto que lo diferencia del resto) La programacioacuten orientada a objetos expresa un programa como un conjunto de estos objetos que colaboran entre ellos para realizar tareas Esto permite hacer los programas y moacutedulos maacutes faacuteciles de escribir mantener y reutilizar De esta forma un objeto contiene toda la informacioacuten (los denominados atributos) que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de una misma clase al poder tener valores bien diferenciados en sus atributos)
CLASIFICACIONES DE LENGUAJES DE PROGARMACIOacuteN
Lenguaje maacutequina El lenguaje maacutequina es el uacutenico que entiende directamente la computadora utiliza el alfabeto binario que consta de los dos uacutenicos siacutembolos 0 y 1 denominados bits (abreviatura inglesa de diacutegitos binarios) Fue el primer lenguaje utilizado en la programacioacuten de computadoras pero dejoacute de utilizarse por su dificultad y
complicacioacuten siendo sustituido por otros lenguajes maacutes faacuteciles de aprender y utilizar que ademaacutes reducen la posibilidad de cometer errores Lenguaje de bajo nivel Un lenguaje de programacioacuten de bajo nivel es el que proporciona poca o
ninguna abstraccioacuten del microprocesador de un ordenador Consecuentemente es faacutecilmente trasladado a lenguaje de maacutequinaEn general se utiliza este tipo de lenguaje para programar controladores (drivers) La programacioacuten en un lenguaje de bajo nivel como el lenguaje de la maacutequina o el lenguaje simboacutelico tiene ciertas ventajas 1 Mayor adaptacioacuten al equipo 2 Posibilidad de obtener la maacutexima velocidad con miacutenimo uso de memoria Pero tambieacuten tiene importantes inconvenientes Imposibilidad de escribir coacutedigo independiente de la maacutequina Mayor dificultad en la programacioacuten y en la comprensioacuten de los programas
Caracteriacutesticas - Se trabaja a nivel de Microinstrucciones es decir su programacioacuten es al
maacutes fino detalle - Estaacute orientado a la maacutequina Lenguaje de alto nivel Los lenguajes de alto nivel logran la independencia del tipo de maacutequina
y se aproximan al lenguaje natural Se puede decir que el principal problema que
presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen
actualmente en uso Los lenguajes de alto nivel tambieacuten denominados lenguajes
evolucionados surgen con posterioridad a los anteriores con los siguientes objetivos entre otros 1048707 Lograr independencia de la maacutequina pudiendo utilizar un mismo
programa en diferentes equipos con la uacutenica condicioacuten de disponer de un programa
traductor o compilador que lo suministra el fabricante para obtener el programa ejecutable en lenguaje binario de la maacutequina que se trate Ademaacutes no
se necesita conocer el hardware especiacutefico de dicha maacutequina
TRADUCTORES
TRADUCTORES Explicamos el proceso maacutes importante a la hora de hacer
funcionar un programa realizado en lenguajes de alto y medio nivel Cuando programamos en lenguajes de alto nivel lo que
estamos haciendo en realidad es el coacutedigo fuente de ese programa Este coacutedigo fuente debe ser traducido a binario para que las
instrucciones que contienen puedan ser entendidas y ejecutadas por la maacutequina Para esto existe un programa encargado de realizar la
traduccioacuten llamado traductor del lenguaje Estos traductores pueden ser de dos tipos Ensambladores
Son los encargados de traducir los programas escritos en lenguaje ensamblador alenguaje maacutequina
Compiladores
Son programas que leen el coacutedigo fuente y lo traducen o convierten a otro lenguajeEstos programas te muestran los errores existentes en el coacutedigo fuente
Etapas del proceso de compilacioacuten
Edicioacuten Esta fase consiste en escribir el programa empleando alguacuten lenguaje y un
editor Como resultado nos daraacute el coacutedigo fuente de nuestro programa
Compilacioacuten En esta fase se traduce el coacutedigo fuente obtenido en la fase anterior a
coacutedigo maacutequina Si no se produce ninguacuten error se obtiene el coacutedigo objeto En caso derrores el compilador los mostrariacutea para ayudarnos a corregirlos y se procederiacutea a su
compilacioacuten de nuevo una vez corregidos
Linkado Esta fase consiste en unir el archivo generado en la fase dos con determinadas
rutinas internas del lenguaje obteniendo el programa ejecutable
Existen dos tipos de linkados
linkado estaacutetico Los binarios de las libreriacuteas se antildeaden a nuestros binarios compilados
generando el archivo ejecutable
Linkado dinaacutemico no se antildeaden las libreriacuteas a nuestro binario sino que haraacute que se
carguen en memoria las libreriacuteas que en ese momento se necesiten
Una vez traducido compilado y linkado el archivo esta listo para su ejecucioacuten donde
tambieacuten podraacuten surgir problemas y fallos para los cuales tendriacuteamos que volver a
realizar todo el proceso anteriormente citado de modo que puedan ser corregidos
Por este motivo es importante realizar numerosas pruebas en tiempo de ejecucioacuten antes
de presentar el programa al cliente
Otro sistema para la ejecucioacuten de nuestro coacutedigo fuente es mediante el uso de
inteacuterpretes (estos no se encontrariacutean dentro de los traductores)
Inteacuterpretes Los inteacuterpretes realizan la traduccioacuten y ejecucioacuten de forma
simultanea es decir un inteacuterprete lee el coacutedigo fuente y lo va ejecutando al mismo
tiempo Las diferencias entre un compilador y un inteacuterprete
baacutesicamente son bull Un programa compilado puede funcionar por si solo
mientras que un coacutedigo traducido por un inteacuterprete no puede funcionar sin eacuteste bull Un programa traducido por un inteacuterprete puede ser
ejecutado en cualquier maacutequina ya que cada vez que se ejecuta el inteacuterprete tiene
que compilarlo bull Un archivo compilado es mucho maacutes raacutepido que uno
interpretado
Anexo Evaluacion
iquest que es la poo
La programacioacuten Orientada a objetos (POO) es una forma especial de programar maacutes cercana a como expresariacuteamos las cosas en la vida real que otros tipos de programacioacuten Con la POO tenemos que aprender a pensar las cosas de una manera distinta para escribir nuestros programas en teacuterminos de objetos propiedades meacutetodos y otras cosas que veremos raacutepidamente para aclarar conceptos y dar una pequentildea base que permita soltarnos un poco con este tipo de programacioacuten
iquest que es programacioacuten
Un lenguaje de programacioacuten es un idioma artificial disentildeado para expresar computaciones que pueden ser llevadas a cabo por maacutequinas como las computadoras Pueden usarse para crear programas que controlen el comportamiento fiacutesico y loacutegico de una maacutequina para expresar algoritmos con precisioacuten o como modo de comunicacioacuten humana Estaacute formado de un conjunto de siacutembolos y reglas sintaacutecticas y semaacutenticas que definen su estructura y el significado de sus elementos y expresiones Al proceso por el cual se escribe se prueba se depura se compila y se mantiene el coacutedigo fuente de un programa informaacutetico se le llama programacioacuten
iquestQueacute es compilador
Un compilador es un programa informaacutetico que traduce un programa escrito en un lenguaje de programacioacuten a otro lenguaje de programacioacuten generando un programa equivalente que la maacutequina seraacute capaz de interpretar Usualmente el segundo lenguaje es lenguaje de maacutequina pero tambieacuten puede ser simplemente texto Este proceso de traduccioacuten se conoce como compilacioacuten
Un compilador es un programa que permite traducir el coacutedigo fuente de un programa en lenguaje de alto nivel a otro lenguaje de nivel inferior (tiacutepicamente lenguaje de maacutequina) De esta manera un programador puede disentildear un programa en un lenguaje mucho maacutes cercano a como piensa un ser humano para luego compilarlo a un programa maacutes manejable por una computadora
menciona una paradigma de programacioacuten
Paradigama logico
La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica
Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por
expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten
interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de
lenguaje loacutegico es Prolog (Programacioacuten loacutegica)
iquest que es lenguaje java La implementacioacuten original y de referencia del compilador la
maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible
Este tipo de programacioacuten se aplica con mayor intensidad en el campo de la
Inteligencia Artificial (IA) y en especial en el de la Ingenieriacutea del
Conocimientodigma Heuriacutestico
La Programacioacuten Heuriacutestica se presenta y utiliza desde diferentes puntos de vista
o Como teacutecnica de buacutesqueda para la obtencioacuten de metas en problemas no
algoriacutetmicos o con algoritmos que generan explosioacuten combinatoria
o Como un meacutetodo aproximado de resolucioacuten de problemas utilizando
funciones de evaluacioacuten de tipo heuriacutestico
o Como meacutetodo de poda para estrategias de programas que juegan aunque
estos meacutetodos no son realmente heuriacutesticos
Paradigma funcional
Sus oriacutegenes provienen del Caacutelculo Lambda (o λ-caacutelculo) una teoriacutea matemaacutetica
elaborada por Alonzo Church como apoyo a sus estudios sobre computabilidad Un
lenguaje funcional es a grandes rasgos un azuacutecar sintaacutectico del Caacutelculo Lambda
El paradigma funcional estaacute basado en el modelo matemaacutetico de composicioacuten funcional En este modelo el resultado de un caacutelculo es la entrada del siguiente y asiacute sucesivamente hasta que una composicioacuten produce el valor deseado No existe el concepto de celda de memoria que es asignada o modificada Maacutes
bien existen valores intermedios que son el resultado de caacutelculos anteriores y las
entradas a caacutelculos subsiguientes Tampoco existen sentencias imperativas y todas las funciones tienen transparencia referencial La programacioacuten funcional incorpora el concepto de funcioacuten como objeto de primera clase lo que significa que las funciones se pueden tratar como datos (pueden pasar como paraacutemetros calculadas y devueltas como valores normales y mezcladas en el caacutelculo con otras formas de datos) En este paradigma el informaacutetico concibe la solucioacuten como una composicioacuten de funciones La forma en que se especifican las funciones puede variar Se pueden especificar procedimentalmente o matemaacuteticamente mediante su definicioacuten sin secuencia de control Un lenguaje funcional es el Lisp
Paradigma loacutegico La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de lenguaje loacutegico es Prolog (Programacioacuten loacutegica) Prolog proveniente del ingleacutes Programming in Logic es un lenguaje loacutegico bastante popular en el medio de investigacioacuten en Inteligencia Artificial Prolog es un lenguaje muy diferente tanto de los imperativos como Fortran Pascal C etc como de los funcionales como Lisp En todos los mencionados las instrucciones se ejecutan normalmente en orden secuencial es decir una a continuacioacuten de otra en el mismo orden en que estaacuten escritas que soacutelo variacutea cuando se alcanza una instruccioacuten de control (un bucle una instruccioacuten condicional o una transferencia) En Prolog las cosas son distintas el orden de ejecucioacuten de las instrucciones no tiene nada que ver con el orden en que fueron escritas Tampoco hay instrucciones de control propiamente dichas Para trabajar con este lenguaje un programador debe acostumbrarse a pensar de una manera muy diferente a la que se utiliza en los lenguajes claacutesicos
Paradigma basado en objetos
La programacioacuten orientada a objetos (OOP por las siglas inglesas de Object- Oriented Programming) es una forma de programar que proliferoacute a partir de los antildeos ochenta La Programacioacuten Orientada a Objetos (POO u OOP seguacuten siglas en ingleacutes) es un paradigma de programacioacuten que define los programas en teacuterminos de clases de objetos objetos que son entidades que combinan estado (es decir datos) comportamiento (esto es procedimientos o meacutetodos) e identidad (propiedad del objeto que lo diferencia del resto) La programacioacuten orientada a objetos expresa un programa como un conjunto de estos objetos que colaboran entre ellos para realizar tareas Esto permite hacer los programas y moacutedulos maacutes faacuteciles de escribir mantener y reutilizar De esta forma un objeto contiene toda la informacioacuten (los denominados atributos) que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de una misma clase al poder tener valores bien diferenciados en sus atributos)
CLASIFICACIONES DE LENGUAJES DE PROGARMACIOacuteN
Lenguaje maacutequina El lenguaje maacutequina es el uacutenico que entiende directamente la computadora utiliza el alfabeto binario que consta de los dos uacutenicos siacutembolos 0 y 1 denominados bits (abreviatura inglesa de diacutegitos binarios) Fue el primer lenguaje utilizado en la programacioacuten de computadoras pero dejoacute de utilizarse por su dificultad y
complicacioacuten siendo sustituido por otros lenguajes maacutes faacuteciles de aprender y utilizar que ademaacutes reducen la posibilidad de cometer errores Lenguaje de bajo nivel Un lenguaje de programacioacuten de bajo nivel es el que proporciona poca o
ninguna abstraccioacuten del microprocesador de un ordenador Consecuentemente es faacutecilmente trasladado a lenguaje de maacutequinaEn general se utiliza este tipo de lenguaje para programar controladores (drivers) La programacioacuten en un lenguaje de bajo nivel como el lenguaje de la maacutequina o el lenguaje simboacutelico tiene ciertas ventajas 1 Mayor adaptacioacuten al equipo 2 Posibilidad de obtener la maacutexima velocidad con miacutenimo uso de memoria Pero tambieacuten tiene importantes inconvenientes Imposibilidad de escribir coacutedigo independiente de la maacutequina Mayor dificultad en la programacioacuten y en la comprensioacuten de los programas
Caracteriacutesticas - Se trabaja a nivel de Microinstrucciones es decir su programacioacuten es al
maacutes fino detalle - Estaacute orientado a la maacutequina Lenguaje de alto nivel Los lenguajes de alto nivel logran la independencia del tipo de maacutequina
y se aproximan al lenguaje natural Se puede decir que el principal problema que
presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen
actualmente en uso Los lenguajes de alto nivel tambieacuten denominados lenguajes
evolucionados surgen con posterioridad a los anteriores con los siguientes objetivos entre otros 1048707 Lograr independencia de la maacutequina pudiendo utilizar un mismo
programa en diferentes equipos con la uacutenica condicioacuten de disponer de un programa
traductor o compilador que lo suministra el fabricante para obtener el programa ejecutable en lenguaje binario de la maacutequina que se trate Ademaacutes no
se necesita conocer el hardware especiacutefico de dicha maacutequina
TRADUCTORES
TRADUCTORES Explicamos el proceso maacutes importante a la hora de hacer
funcionar un programa realizado en lenguajes de alto y medio nivel Cuando programamos en lenguajes de alto nivel lo que
estamos haciendo en realidad es el coacutedigo fuente de ese programa Este coacutedigo fuente debe ser traducido a binario para que las
instrucciones que contienen puedan ser entendidas y ejecutadas por la maacutequina Para esto existe un programa encargado de realizar la
traduccioacuten llamado traductor del lenguaje Estos traductores pueden ser de dos tipos Ensambladores
Son los encargados de traducir los programas escritos en lenguaje ensamblador alenguaje maacutequina
Compiladores
Son programas que leen el coacutedigo fuente y lo traducen o convierten a otro lenguajeEstos programas te muestran los errores existentes en el coacutedigo fuente
Etapas del proceso de compilacioacuten
Edicioacuten Esta fase consiste en escribir el programa empleando alguacuten lenguaje y un
editor Como resultado nos daraacute el coacutedigo fuente de nuestro programa
Compilacioacuten En esta fase se traduce el coacutedigo fuente obtenido en la fase anterior a
coacutedigo maacutequina Si no se produce ninguacuten error se obtiene el coacutedigo objeto En caso derrores el compilador los mostrariacutea para ayudarnos a corregirlos y se procederiacutea a su
compilacioacuten de nuevo una vez corregidos
Linkado Esta fase consiste en unir el archivo generado en la fase dos con determinadas
rutinas internas del lenguaje obteniendo el programa ejecutable
Existen dos tipos de linkados
linkado estaacutetico Los binarios de las libreriacuteas se antildeaden a nuestros binarios compilados
generando el archivo ejecutable
Linkado dinaacutemico no se antildeaden las libreriacuteas a nuestro binario sino que haraacute que se
carguen en memoria las libreriacuteas que en ese momento se necesiten
Una vez traducido compilado y linkado el archivo esta listo para su ejecucioacuten donde
tambieacuten podraacuten surgir problemas y fallos para los cuales tendriacuteamos que volver a
realizar todo el proceso anteriormente citado de modo que puedan ser corregidos
Por este motivo es importante realizar numerosas pruebas en tiempo de ejecucioacuten antes
de presentar el programa al cliente
Otro sistema para la ejecucioacuten de nuestro coacutedigo fuente es mediante el uso de
inteacuterpretes (estos no se encontrariacutean dentro de los traductores)
Inteacuterpretes Los inteacuterpretes realizan la traduccioacuten y ejecucioacuten de forma
simultanea es decir un inteacuterprete lee el coacutedigo fuente y lo va ejecutando al mismo
tiempo Las diferencias entre un compilador y un inteacuterprete
baacutesicamente son bull Un programa compilado puede funcionar por si solo
mientras que un coacutedigo traducido por un inteacuterprete no puede funcionar sin eacuteste bull Un programa traducido por un inteacuterprete puede ser
ejecutado en cualquier maacutequina ya que cada vez que se ejecuta el inteacuterprete tiene
que compilarlo bull Un archivo compilado es mucho maacutes raacutepido que uno
interpretado
Anexo Evaluacion
iquest que es la poo
La programacioacuten Orientada a objetos (POO) es una forma especial de programar maacutes cercana a como expresariacuteamos las cosas en la vida real que otros tipos de programacioacuten Con la POO tenemos que aprender a pensar las cosas de una manera distinta para escribir nuestros programas en teacuterminos de objetos propiedades meacutetodos y otras cosas que veremos raacutepidamente para aclarar conceptos y dar una pequentildea base que permita soltarnos un poco con este tipo de programacioacuten
iquest que es programacioacuten
Un lenguaje de programacioacuten es un idioma artificial disentildeado para expresar computaciones que pueden ser llevadas a cabo por maacutequinas como las computadoras Pueden usarse para crear programas que controlen el comportamiento fiacutesico y loacutegico de una maacutequina para expresar algoritmos con precisioacuten o como modo de comunicacioacuten humana Estaacute formado de un conjunto de siacutembolos y reglas sintaacutecticas y semaacutenticas que definen su estructura y el significado de sus elementos y expresiones Al proceso por el cual se escribe se prueba se depura se compila y se mantiene el coacutedigo fuente de un programa informaacutetico se le llama programacioacuten
iquestQueacute es compilador
Un compilador es un programa informaacutetico que traduce un programa escrito en un lenguaje de programacioacuten a otro lenguaje de programacioacuten generando un programa equivalente que la maacutequina seraacute capaz de interpretar Usualmente el segundo lenguaje es lenguaje de maacutequina pero tambieacuten puede ser simplemente texto Este proceso de traduccioacuten se conoce como compilacioacuten
Un compilador es un programa que permite traducir el coacutedigo fuente de un programa en lenguaje de alto nivel a otro lenguaje de nivel inferior (tiacutepicamente lenguaje de maacutequina) De esta manera un programador puede disentildear un programa en un lenguaje mucho maacutes cercano a como piensa un ser humano para luego compilarlo a un programa maacutes manejable por una computadora
menciona una paradigma de programacioacuten
Paradigama logico
La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica
Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por
expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten
interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de
lenguaje loacutegico es Prolog (Programacioacuten loacutegica)
iquest que es lenguaje java La implementacioacuten original y de referencia del compilador la
maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible
El paradigma funcional estaacute basado en el modelo matemaacutetico de composicioacuten funcional En este modelo el resultado de un caacutelculo es la entrada del siguiente y asiacute sucesivamente hasta que una composicioacuten produce el valor deseado No existe el concepto de celda de memoria que es asignada o modificada Maacutes
bien existen valores intermedios que son el resultado de caacutelculos anteriores y las
entradas a caacutelculos subsiguientes Tampoco existen sentencias imperativas y todas las funciones tienen transparencia referencial La programacioacuten funcional incorpora el concepto de funcioacuten como objeto de primera clase lo que significa que las funciones se pueden tratar como datos (pueden pasar como paraacutemetros calculadas y devueltas como valores normales y mezcladas en el caacutelculo con otras formas de datos) En este paradigma el informaacutetico concibe la solucioacuten como una composicioacuten de funciones La forma en que se especifican las funciones puede variar Se pueden especificar procedimentalmente o matemaacuteticamente mediante su definicioacuten sin secuencia de control Un lenguaje funcional es el Lisp
Paradigma loacutegico La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de lenguaje loacutegico es Prolog (Programacioacuten loacutegica) Prolog proveniente del ingleacutes Programming in Logic es un lenguaje loacutegico bastante popular en el medio de investigacioacuten en Inteligencia Artificial Prolog es un lenguaje muy diferente tanto de los imperativos como Fortran Pascal C etc como de los funcionales como Lisp En todos los mencionados las instrucciones se ejecutan normalmente en orden secuencial es decir una a continuacioacuten de otra en el mismo orden en que estaacuten escritas que soacutelo variacutea cuando se alcanza una instruccioacuten de control (un bucle una instruccioacuten condicional o una transferencia) En Prolog las cosas son distintas el orden de ejecucioacuten de las instrucciones no tiene nada que ver con el orden en que fueron escritas Tampoco hay instrucciones de control propiamente dichas Para trabajar con este lenguaje un programador debe acostumbrarse a pensar de una manera muy diferente a la que se utiliza en los lenguajes claacutesicos
Paradigma basado en objetos
La programacioacuten orientada a objetos (OOP por las siglas inglesas de Object- Oriented Programming) es una forma de programar que proliferoacute a partir de los antildeos ochenta La Programacioacuten Orientada a Objetos (POO u OOP seguacuten siglas en ingleacutes) es un paradigma de programacioacuten que define los programas en teacuterminos de clases de objetos objetos que son entidades que combinan estado (es decir datos) comportamiento (esto es procedimientos o meacutetodos) e identidad (propiedad del objeto que lo diferencia del resto) La programacioacuten orientada a objetos expresa un programa como un conjunto de estos objetos que colaboran entre ellos para realizar tareas Esto permite hacer los programas y moacutedulos maacutes faacuteciles de escribir mantener y reutilizar De esta forma un objeto contiene toda la informacioacuten (los denominados atributos) que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de una misma clase al poder tener valores bien diferenciados en sus atributos)
CLASIFICACIONES DE LENGUAJES DE PROGARMACIOacuteN
Lenguaje maacutequina El lenguaje maacutequina es el uacutenico que entiende directamente la computadora utiliza el alfabeto binario que consta de los dos uacutenicos siacutembolos 0 y 1 denominados bits (abreviatura inglesa de diacutegitos binarios) Fue el primer lenguaje utilizado en la programacioacuten de computadoras pero dejoacute de utilizarse por su dificultad y
complicacioacuten siendo sustituido por otros lenguajes maacutes faacuteciles de aprender y utilizar que ademaacutes reducen la posibilidad de cometer errores Lenguaje de bajo nivel Un lenguaje de programacioacuten de bajo nivel es el que proporciona poca o
ninguna abstraccioacuten del microprocesador de un ordenador Consecuentemente es faacutecilmente trasladado a lenguaje de maacutequinaEn general se utiliza este tipo de lenguaje para programar controladores (drivers) La programacioacuten en un lenguaje de bajo nivel como el lenguaje de la maacutequina o el lenguaje simboacutelico tiene ciertas ventajas 1 Mayor adaptacioacuten al equipo 2 Posibilidad de obtener la maacutexima velocidad con miacutenimo uso de memoria Pero tambieacuten tiene importantes inconvenientes Imposibilidad de escribir coacutedigo independiente de la maacutequina Mayor dificultad en la programacioacuten y en la comprensioacuten de los programas
Caracteriacutesticas - Se trabaja a nivel de Microinstrucciones es decir su programacioacuten es al
maacutes fino detalle - Estaacute orientado a la maacutequina Lenguaje de alto nivel Los lenguajes de alto nivel logran la independencia del tipo de maacutequina
y se aproximan al lenguaje natural Se puede decir que el principal problema que
presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen
actualmente en uso Los lenguajes de alto nivel tambieacuten denominados lenguajes
evolucionados surgen con posterioridad a los anteriores con los siguientes objetivos entre otros 1048707 Lograr independencia de la maacutequina pudiendo utilizar un mismo
programa en diferentes equipos con la uacutenica condicioacuten de disponer de un programa
traductor o compilador que lo suministra el fabricante para obtener el programa ejecutable en lenguaje binario de la maacutequina que se trate Ademaacutes no
se necesita conocer el hardware especiacutefico de dicha maacutequina
TRADUCTORES
TRADUCTORES Explicamos el proceso maacutes importante a la hora de hacer
funcionar un programa realizado en lenguajes de alto y medio nivel Cuando programamos en lenguajes de alto nivel lo que
estamos haciendo en realidad es el coacutedigo fuente de ese programa Este coacutedigo fuente debe ser traducido a binario para que las
instrucciones que contienen puedan ser entendidas y ejecutadas por la maacutequina Para esto existe un programa encargado de realizar la
traduccioacuten llamado traductor del lenguaje Estos traductores pueden ser de dos tipos Ensambladores
Son los encargados de traducir los programas escritos en lenguaje ensamblador alenguaje maacutequina
Compiladores
Son programas que leen el coacutedigo fuente y lo traducen o convierten a otro lenguajeEstos programas te muestran los errores existentes en el coacutedigo fuente
Etapas del proceso de compilacioacuten
Edicioacuten Esta fase consiste en escribir el programa empleando alguacuten lenguaje y un
editor Como resultado nos daraacute el coacutedigo fuente de nuestro programa
Compilacioacuten En esta fase se traduce el coacutedigo fuente obtenido en la fase anterior a
coacutedigo maacutequina Si no se produce ninguacuten error se obtiene el coacutedigo objeto En caso derrores el compilador los mostrariacutea para ayudarnos a corregirlos y se procederiacutea a su
compilacioacuten de nuevo una vez corregidos
Linkado Esta fase consiste en unir el archivo generado en la fase dos con determinadas
rutinas internas del lenguaje obteniendo el programa ejecutable
Existen dos tipos de linkados
linkado estaacutetico Los binarios de las libreriacuteas se antildeaden a nuestros binarios compilados
generando el archivo ejecutable
Linkado dinaacutemico no se antildeaden las libreriacuteas a nuestro binario sino que haraacute que se
carguen en memoria las libreriacuteas que en ese momento se necesiten
Una vez traducido compilado y linkado el archivo esta listo para su ejecucioacuten donde
tambieacuten podraacuten surgir problemas y fallos para los cuales tendriacuteamos que volver a
realizar todo el proceso anteriormente citado de modo que puedan ser corregidos
Por este motivo es importante realizar numerosas pruebas en tiempo de ejecucioacuten antes
de presentar el programa al cliente
Otro sistema para la ejecucioacuten de nuestro coacutedigo fuente es mediante el uso de
inteacuterpretes (estos no se encontrariacutean dentro de los traductores)
Inteacuterpretes Los inteacuterpretes realizan la traduccioacuten y ejecucioacuten de forma
simultanea es decir un inteacuterprete lee el coacutedigo fuente y lo va ejecutando al mismo
tiempo Las diferencias entre un compilador y un inteacuterprete
baacutesicamente son bull Un programa compilado puede funcionar por si solo
mientras que un coacutedigo traducido por un inteacuterprete no puede funcionar sin eacuteste bull Un programa traducido por un inteacuterprete puede ser
ejecutado en cualquier maacutequina ya que cada vez que se ejecuta el inteacuterprete tiene
que compilarlo bull Un archivo compilado es mucho maacutes raacutepido que uno
interpretado
Anexo Evaluacion
iquest que es la poo
La programacioacuten Orientada a objetos (POO) es una forma especial de programar maacutes cercana a como expresariacuteamos las cosas en la vida real que otros tipos de programacioacuten Con la POO tenemos que aprender a pensar las cosas de una manera distinta para escribir nuestros programas en teacuterminos de objetos propiedades meacutetodos y otras cosas que veremos raacutepidamente para aclarar conceptos y dar una pequentildea base que permita soltarnos un poco con este tipo de programacioacuten
iquest que es programacioacuten
Un lenguaje de programacioacuten es un idioma artificial disentildeado para expresar computaciones que pueden ser llevadas a cabo por maacutequinas como las computadoras Pueden usarse para crear programas que controlen el comportamiento fiacutesico y loacutegico de una maacutequina para expresar algoritmos con precisioacuten o como modo de comunicacioacuten humana Estaacute formado de un conjunto de siacutembolos y reglas sintaacutecticas y semaacutenticas que definen su estructura y el significado de sus elementos y expresiones Al proceso por el cual se escribe se prueba se depura se compila y se mantiene el coacutedigo fuente de un programa informaacutetico se le llama programacioacuten
iquestQueacute es compilador
Un compilador es un programa informaacutetico que traduce un programa escrito en un lenguaje de programacioacuten a otro lenguaje de programacioacuten generando un programa equivalente que la maacutequina seraacute capaz de interpretar Usualmente el segundo lenguaje es lenguaje de maacutequina pero tambieacuten puede ser simplemente texto Este proceso de traduccioacuten se conoce como compilacioacuten
Un compilador es un programa que permite traducir el coacutedigo fuente de un programa en lenguaje de alto nivel a otro lenguaje de nivel inferior (tiacutepicamente lenguaje de maacutequina) De esta manera un programador puede disentildear un programa en un lenguaje mucho maacutes cercano a como piensa un ser humano para luego compilarlo a un programa maacutes manejable por una computadora
menciona una paradigma de programacioacuten
Paradigama logico
La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica
Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por
expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten
interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de
lenguaje loacutegico es Prolog (Programacioacuten loacutegica)
iquest que es lenguaje java La implementacioacuten original y de referencia del compilador la
maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible
Paradigma loacutegico La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de lenguaje loacutegico es Prolog (Programacioacuten loacutegica) Prolog proveniente del ingleacutes Programming in Logic es un lenguaje loacutegico bastante popular en el medio de investigacioacuten en Inteligencia Artificial Prolog es un lenguaje muy diferente tanto de los imperativos como Fortran Pascal C etc como de los funcionales como Lisp En todos los mencionados las instrucciones se ejecutan normalmente en orden secuencial es decir una a continuacioacuten de otra en el mismo orden en que estaacuten escritas que soacutelo variacutea cuando se alcanza una instruccioacuten de control (un bucle una instruccioacuten condicional o una transferencia) En Prolog las cosas son distintas el orden de ejecucioacuten de las instrucciones no tiene nada que ver con el orden en que fueron escritas Tampoco hay instrucciones de control propiamente dichas Para trabajar con este lenguaje un programador debe acostumbrarse a pensar de una manera muy diferente a la que se utiliza en los lenguajes claacutesicos
Paradigma basado en objetos
La programacioacuten orientada a objetos (OOP por las siglas inglesas de Object- Oriented Programming) es una forma de programar que proliferoacute a partir de los antildeos ochenta La Programacioacuten Orientada a Objetos (POO u OOP seguacuten siglas en ingleacutes) es un paradigma de programacioacuten que define los programas en teacuterminos de clases de objetos objetos que son entidades que combinan estado (es decir datos) comportamiento (esto es procedimientos o meacutetodos) e identidad (propiedad del objeto que lo diferencia del resto) La programacioacuten orientada a objetos expresa un programa como un conjunto de estos objetos que colaboran entre ellos para realizar tareas Esto permite hacer los programas y moacutedulos maacutes faacuteciles de escribir mantener y reutilizar De esta forma un objeto contiene toda la informacioacuten (los denominados atributos) que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de una misma clase al poder tener valores bien diferenciados en sus atributos)
CLASIFICACIONES DE LENGUAJES DE PROGARMACIOacuteN
Lenguaje maacutequina El lenguaje maacutequina es el uacutenico que entiende directamente la computadora utiliza el alfabeto binario que consta de los dos uacutenicos siacutembolos 0 y 1 denominados bits (abreviatura inglesa de diacutegitos binarios) Fue el primer lenguaje utilizado en la programacioacuten de computadoras pero dejoacute de utilizarse por su dificultad y
complicacioacuten siendo sustituido por otros lenguajes maacutes faacuteciles de aprender y utilizar que ademaacutes reducen la posibilidad de cometer errores Lenguaje de bajo nivel Un lenguaje de programacioacuten de bajo nivel es el que proporciona poca o
ninguna abstraccioacuten del microprocesador de un ordenador Consecuentemente es faacutecilmente trasladado a lenguaje de maacutequinaEn general se utiliza este tipo de lenguaje para programar controladores (drivers) La programacioacuten en un lenguaje de bajo nivel como el lenguaje de la maacutequina o el lenguaje simboacutelico tiene ciertas ventajas 1 Mayor adaptacioacuten al equipo 2 Posibilidad de obtener la maacutexima velocidad con miacutenimo uso de memoria Pero tambieacuten tiene importantes inconvenientes Imposibilidad de escribir coacutedigo independiente de la maacutequina Mayor dificultad en la programacioacuten y en la comprensioacuten de los programas
Caracteriacutesticas - Se trabaja a nivel de Microinstrucciones es decir su programacioacuten es al
maacutes fino detalle - Estaacute orientado a la maacutequina Lenguaje de alto nivel Los lenguajes de alto nivel logran la independencia del tipo de maacutequina
y se aproximan al lenguaje natural Se puede decir que el principal problema que
presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen
actualmente en uso Los lenguajes de alto nivel tambieacuten denominados lenguajes
evolucionados surgen con posterioridad a los anteriores con los siguientes objetivos entre otros 1048707 Lograr independencia de la maacutequina pudiendo utilizar un mismo
programa en diferentes equipos con la uacutenica condicioacuten de disponer de un programa
traductor o compilador que lo suministra el fabricante para obtener el programa ejecutable en lenguaje binario de la maacutequina que se trate Ademaacutes no
se necesita conocer el hardware especiacutefico de dicha maacutequina
TRADUCTORES
TRADUCTORES Explicamos el proceso maacutes importante a la hora de hacer
funcionar un programa realizado en lenguajes de alto y medio nivel Cuando programamos en lenguajes de alto nivel lo que
estamos haciendo en realidad es el coacutedigo fuente de ese programa Este coacutedigo fuente debe ser traducido a binario para que las
instrucciones que contienen puedan ser entendidas y ejecutadas por la maacutequina Para esto existe un programa encargado de realizar la
traduccioacuten llamado traductor del lenguaje Estos traductores pueden ser de dos tipos Ensambladores
Son los encargados de traducir los programas escritos en lenguaje ensamblador alenguaje maacutequina
Compiladores
Son programas que leen el coacutedigo fuente y lo traducen o convierten a otro lenguajeEstos programas te muestran los errores existentes en el coacutedigo fuente
Etapas del proceso de compilacioacuten
Edicioacuten Esta fase consiste en escribir el programa empleando alguacuten lenguaje y un
editor Como resultado nos daraacute el coacutedigo fuente de nuestro programa
Compilacioacuten En esta fase se traduce el coacutedigo fuente obtenido en la fase anterior a
coacutedigo maacutequina Si no se produce ninguacuten error se obtiene el coacutedigo objeto En caso derrores el compilador los mostrariacutea para ayudarnos a corregirlos y se procederiacutea a su
compilacioacuten de nuevo una vez corregidos
Linkado Esta fase consiste en unir el archivo generado en la fase dos con determinadas
rutinas internas del lenguaje obteniendo el programa ejecutable
Existen dos tipos de linkados
linkado estaacutetico Los binarios de las libreriacuteas se antildeaden a nuestros binarios compilados
generando el archivo ejecutable
Linkado dinaacutemico no se antildeaden las libreriacuteas a nuestro binario sino que haraacute que se
carguen en memoria las libreriacuteas que en ese momento se necesiten
Una vez traducido compilado y linkado el archivo esta listo para su ejecucioacuten donde
tambieacuten podraacuten surgir problemas y fallos para los cuales tendriacuteamos que volver a
realizar todo el proceso anteriormente citado de modo que puedan ser corregidos
Por este motivo es importante realizar numerosas pruebas en tiempo de ejecucioacuten antes
de presentar el programa al cliente
Otro sistema para la ejecucioacuten de nuestro coacutedigo fuente es mediante el uso de
inteacuterpretes (estos no se encontrariacutean dentro de los traductores)
Inteacuterpretes Los inteacuterpretes realizan la traduccioacuten y ejecucioacuten de forma
simultanea es decir un inteacuterprete lee el coacutedigo fuente y lo va ejecutando al mismo
tiempo Las diferencias entre un compilador y un inteacuterprete
baacutesicamente son bull Un programa compilado puede funcionar por si solo
mientras que un coacutedigo traducido por un inteacuterprete no puede funcionar sin eacuteste bull Un programa traducido por un inteacuterprete puede ser
ejecutado en cualquier maacutequina ya que cada vez que se ejecuta el inteacuterprete tiene
que compilarlo bull Un archivo compilado es mucho maacutes raacutepido que uno
interpretado
Anexo Evaluacion
iquest que es la poo
La programacioacuten Orientada a objetos (POO) es una forma especial de programar maacutes cercana a como expresariacuteamos las cosas en la vida real que otros tipos de programacioacuten Con la POO tenemos que aprender a pensar las cosas de una manera distinta para escribir nuestros programas en teacuterminos de objetos propiedades meacutetodos y otras cosas que veremos raacutepidamente para aclarar conceptos y dar una pequentildea base que permita soltarnos un poco con este tipo de programacioacuten
iquest que es programacioacuten
Un lenguaje de programacioacuten es un idioma artificial disentildeado para expresar computaciones que pueden ser llevadas a cabo por maacutequinas como las computadoras Pueden usarse para crear programas que controlen el comportamiento fiacutesico y loacutegico de una maacutequina para expresar algoritmos con precisioacuten o como modo de comunicacioacuten humana Estaacute formado de un conjunto de siacutembolos y reglas sintaacutecticas y semaacutenticas que definen su estructura y el significado de sus elementos y expresiones Al proceso por el cual se escribe se prueba se depura se compila y se mantiene el coacutedigo fuente de un programa informaacutetico se le llama programacioacuten
iquestQueacute es compilador
Un compilador es un programa informaacutetico que traduce un programa escrito en un lenguaje de programacioacuten a otro lenguaje de programacioacuten generando un programa equivalente que la maacutequina seraacute capaz de interpretar Usualmente el segundo lenguaje es lenguaje de maacutequina pero tambieacuten puede ser simplemente texto Este proceso de traduccioacuten se conoce como compilacioacuten
Un compilador es un programa que permite traducir el coacutedigo fuente de un programa en lenguaje de alto nivel a otro lenguaje de nivel inferior (tiacutepicamente lenguaje de maacutequina) De esta manera un programador puede disentildear un programa en un lenguaje mucho maacutes cercano a como piensa un ser humano para luego compilarlo a un programa maacutes manejable por una computadora
menciona una paradigma de programacioacuten
Paradigama logico
La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica
Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por
expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten
interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de
lenguaje loacutegico es Prolog (Programacioacuten loacutegica)
iquest que es lenguaje java La implementacioacuten original y de referencia del compilador la
maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible
Paradigma basado en objetos
La programacioacuten orientada a objetos (OOP por las siglas inglesas de Object- Oriented Programming) es una forma de programar que proliferoacute a partir de los antildeos ochenta La Programacioacuten Orientada a Objetos (POO u OOP seguacuten siglas en ingleacutes) es un paradigma de programacioacuten que define los programas en teacuterminos de clases de objetos objetos que son entidades que combinan estado (es decir datos) comportamiento (esto es procedimientos o meacutetodos) e identidad (propiedad del objeto que lo diferencia del resto) La programacioacuten orientada a objetos expresa un programa como un conjunto de estos objetos que colaboran entre ellos para realizar tareas Esto permite hacer los programas y moacutedulos maacutes faacuteciles de escribir mantener y reutilizar De esta forma un objeto contiene toda la informacioacuten (los denominados atributos) que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de una misma clase al poder tener valores bien diferenciados en sus atributos)
CLASIFICACIONES DE LENGUAJES DE PROGARMACIOacuteN
Lenguaje maacutequina El lenguaje maacutequina es el uacutenico que entiende directamente la computadora utiliza el alfabeto binario que consta de los dos uacutenicos siacutembolos 0 y 1 denominados bits (abreviatura inglesa de diacutegitos binarios) Fue el primer lenguaje utilizado en la programacioacuten de computadoras pero dejoacute de utilizarse por su dificultad y
complicacioacuten siendo sustituido por otros lenguajes maacutes faacuteciles de aprender y utilizar que ademaacutes reducen la posibilidad de cometer errores Lenguaje de bajo nivel Un lenguaje de programacioacuten de bajo nivel es el que proporciona poca o
ninguna abstraccioacuten del microprocesador de un ordenador Consecuentemente es faacutecilmente trasladado a lenguaje de maacutequinaEn general se utiliza este tipo de lenguaje para programar controladores (drivers) La programacioacuten en un lenguaje de bajo nivel como el lenguaje de la maacutequina o el lenguaje simboacutelico tiene ciertas ventajas 1 Mayor adaptacioacuten al equipo 2 Posibilidad de obtener la maacutexima velocidad con miacutenimo uso de memoria Pero tambieacuten tiene importantes inconvenientes Imposibilidad de escribir coacutedigo independiente de la maacutequina Mayor dificultad en la programacioacuten y en la comprensioacuten de los programas
Caracteriacutesticas - Se trabaja a nivel de Microinstrucciones es decir su programacioacuten es al
maacutes fino detalle - Estaacute orientado a la maacutequina Lenguaje de alto nivel Los lenguajes de alto nivel logran la independencia del tipo de maacutequina
y se aproximan al lenguaje natural Se puede decir que el principal problema que
presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen
actualmente en uso Los lenguajes de alto nivel tambieacuten denominados lenguajes
evolucionados surgen con posterioridad a los anteriores con los siguientes objetivos entre otros 1048707 Lograr independencia de la maacutequina pudiendo utilizar un mismo
programa en diferentes equipos con la uacutenica condicioacuten de disponer de un programa
traductor o compilador que lo suministra el fabricante para obtener el programa ejecutable en lenguaje binario de la maacutequina que se trate Ademaacutes no
se necesita conocer el hardware especiacutefico de dicha maacutequina
TRADUCTORES
TRADUCTORES Explicamos el proceso maacutes importante a la hora de hacer
funcionar un programa realizado en lenguajes de alto y medio nivel Cuando programamos en lenguajes de alto nivel lo que
estamos haciendo en realidad es el coacutedigo fuente de ese programa Este coacutedigo fuente debe ser traducido a binario para que las
instrucciones que contienen puedan ser entendidas y ejecutadas por la maacutequina Para esto existe un programa encargado de realizar la
traduccioacuten llamado traductor del lenguaje Estos traductores pueden ser de dos tipos Ensambladores
Son los encargados de traducir los programas escritos en lenguaje ensamblador alenguaje maacutequina
Compiladores
Son programas que leen el coacutedigo fuente y lo traducen o convierten a otro lenguajeEstos programas te muestran los errores existentes en el coacutedigo fuente
Etapas del proceso de compilacioacuten
Edicioacuten Esta fase consiste en escribir el programa empleando alguacuten lenguaje y un
editor Como resultado nos daraacute el coacutedigo fuente de nuestro programa
Compilacioacuten En esta fase se traduce el coacutedigo fuente obtenido en la fase anterior a
coacutedigo maacutequina Si no se produce ninguacuten error se obtiene el coacutedigo objeto En caso derrores el compilador los mostrariacutea para ayudarnos a corregirlos y se procederiacutea a su
compilacioacuten de nuevo una vez corregidos
Linkado Esta fase consiste en unir el archivo generado en la fase dos con determinadas
rutinas internas del lenguaje obteniendo el programa ejecutable
Existen dos tipos de linkados
linkado estaacutetico Los binarios de las libreriacuteas se antildeaden a nuestros binarios compilados
generando el archivo ejecutable
Linkado dinaacutemico no se antildeaden las libreriacuteas a nuestro binario sino que haraacute que se
carguen en memoria las libreriacuteas que en ese momento se necesiten
Una vez traducido compilado y linkado el archivo esta listo para su ejecucioacuten donde
tambieacuten podraacuten surgir problemas y fallos para los cuales tendriacuteamos que volver a
realizar todo el proceso anteriormente citado de modo que puedan ser corregidos
Por este motivo es importante realizar numerosas pruebas en tiempo de ejecucioacuten antes
de presentar el programa al cliente
Otro sistema para la ejecucioacuten de nuestro coacutedigo fuente es mediante el uso de
inteacuterpretes (estos no se encontrariacutean dentro de los traductores)
Inteacuterpretes Los inteacuterpretes realizan la traduccioacuten y ejecucioacuten de forma
simultanea es decir un inteacuterprete lee el coacutedigo fuente y lo va ejecutando al mismo
tiempo Las diferencias entre un compilador y un inteacuterprete
baacutesicamente son bull Un programa compilado puede funcionar por si solo
mientras que un coacutedigo traducido por un inteacuterprete no puede funcionar sin eacuteste bull Un programa traducido por un inteacuterprete puede ser
ejecutado en cualquier maacutequina ya que cada vez que se ejecuta el inteacuterprete tiene
que compilarlo bull Un archivo compilado es mucho maacutes raacutepido que uno
interpretado
Anexo Evaluacion
iquest que es la poo
La programacioacuten Orientada a objetos (POO) es una forma especial de programar maacutes cercana a como expresariacuteamos las cosas en la vida real que otros tipos de programacioacuten Con la POO tenemos que aprender a pensar las cosas de una manera distinta para escribir nuestros programas en teacuterminos de objetos propiedades meacutetodos y otras cosas que veremos raacutepidamente para aclarar conceptos y dar una pequentildea base que permita soltarnos un poco con este tipo de programacioacuten
iquest que es programacioacuten
Un lenguaje de programacioacuten es un idioma artificial disentildeado para expresar computaciones que pueden ser llevadas a cabo por maacutequinas como las computadoras Pueden usarse para crear programas que controlen el comportamiento fiacutesico y loacutegico de una maacutequina para expresar algoritmos con precisioacuten o como modo de comunicacioacuten humana Estaacute formado de un conjunto de siacutembolos y reglas sintaacutecticas y semaacutenticas que definen su estructura y el significado de sus elementos y expresiones Al proceso por el cual se escribe se prueba se depura se compila y se mantiene el coacutedigo fuente de un programa informaacutetico se le llama programacioacuten
iquestQueacute es compilador
Un compilador es un programa informaacutetico que traduce un programa escrito en un lenguaje de programacioacuten a otro lenguaje de programacioacuten generando un programa equivalente que la maacutequina seraacute capaz de interpretar Usualmente el segundo lenguaje es lenguaje de maacutequina pero tambieacuten puede ser simplemente texto Este proceso de traduccioacuten se conoce como compilacioacuten
Un compilador es un programa que permite traducir el coacutedigo fuente de un programa en lenguaje de alto nivel a otro lenguaje de nivel inferior (tiacutepicamente lenguaje de maacutequina) De esta manera un programador puede disentildear un programa en un lenguaje mucho maacutes cercano a como piensa un ser humano para luego compilarlo a un programa maacutes manejable por una computadora
menciona una paradigma de programacioacuten
Paradigama logico
La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica
Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por
expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten
interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de
lenguaje loacutegico es Prolog (Programacioacuten loacutegica)
iquest que es lenguaje java La implementacioacuten original y de referencia del compilador la
maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible
CLASIFICACIONES DE LENGUAJES DE PROGARMACIOacuteN
Lenguaje maacutequina El lenguaje maacutequina es el uacutenico que entiende directamente la computadora utiliza el alfabeto binario que consta de los dos uacutenicos siacutembolos 0 y 1 denominados bits (abreviatura inglesa de diacutegitos binarios) Fue el primer lenguaje utilizado en la programacioacuten de computadoras pero dejoacute de utilizarse por su dificultad y
complicacioacuten siendo sustituido por otros lenguajes maacutes faacuteciles de aprender y utilizar que ademaacutes reducen la posibilidad de cometer errores Lenguaje de bajo nivel Un lenguaje de programacioacuten de bajo nivel es el que proporciona poca o
ninguna abstraccioacuten del microprocesador de un ordenador Consecuentemente es faacutecilmente trasladado a lenguaje de maacutequinaEn general se utiliza este tipo de lenguaje para programar controladores (drivers) La programacioacuten en un lenguaje de bajo nivel como el lenguaje de la maacutequina o el lenguaje simboacutelico tiene ciertas ventajas 1 Mayor adaptacioacuten al equipo 2 Posibilidad de obtener la maacutexima velocidad con miacutenimo uso de memoria Pero tambieacuten tiene importantes inconvenientes Imposibilidad de escribir coacutedigo independiente de la maacutequina Mayor dificultad en la programacioacuten y en la comprensioacuten de los programas
Caracteriacutesticas - Se trabaja a nivel de Microinstrucciones es decir su programacioacuten es al
maacutes fino detalle - Estaacute orientado a la maacutequina Lenguaje de alto nivel Los lenguajes de alto nivel logran la independencia del tipo de maacutequina
y se aproximan al lenguaje natural Se puede decir que el principal problema que
presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen
actualmente en uso Los lenguajes de alto nivel tambieacuten denominados lenguajes
evolucionados surgen con posterioridad a los anteriores con los siguientes objetivos entre otros 1048707 Lograr independencia de la maacutequina pudiendo utilizar un mismo
programa en diferentes equipos con la uacutenica condicioacuten de disponer de un programa
traductor o compilador que lo suministra el fabricante para obtener el programa ejecutable en lenguaje binario de la maacutequina que se trate Ademaacutes no
se necesita conocer el hardware especiacutefico de dicha maacutequina
TRADUCTORES
TRADUCTORES Explicamos el proceso maacutes importante a la hora de hacer
funcionar un programa realizado en lenguajes de alto y medio nivel Cuando programamos en lenguajes de alto nivel lo que
estamos haciendo en realidad es el coacutedigo fuente de ese programa Este coacutedigo fuente debe ser traducido a binario para que las
instrucciones que contienen puedan ser entendidas y ejecutadas por la maacutequina Para esto existe un programa encargado de realizar la
traduccioacuten llamado traductor del lenguaje Estos traductores pueden ser de dos tipos Ensambladores
Son los encargados de traducir los programas escritos en lenguaje ensamblador alenguaje maacutequina
Compiladores
Son programas que leen el coacutedigo fuente y lo traducen o convierten a otro lenguajeEstos programas te muestran los errores existentes en el coacutedigo fuente
Etapas del proceso de compilacioacuten
Edicioacuten Esta fase consiste en escribir el programa empleando alguacuten lenguaje y un
editor Como resultado nos daraacute el coacutedigo fuente de nuestro programa
Compilacioacuten En esta fase se traduce el coacutedigo fuente obtenido en la fase anterior a
coacutedigo maacutequina Si no se produce ninguacuten error se obtiene el coacutedigo objeto En caso derrores el compilador los mostrariacutea para ayudarnos a corregirlos y se procederiacutea a su
compilacioacuten de nuevo una vez corregidos
Linkado Esta fase consiste en unir el archivo generado en la fase dos con determinadas
rutinas internas del lenguaje obteniendo el programa ejecutable
Existen dos tipos de linkados
linkado estaacutetico Los binarios de las libreriacuteas se antildeaden a nuestros binarios compilados
generando el archivo ejecutable
Linkado dinaacutemico no se antildeaden las libreriacuteas a nuestro binario sino que haraacute que se
carguen en memoria las libreriacuteas que en ese momento se necesiten
Una vez traducido compilado y linkado el archivo esta listo para su ejecucioacuten donde
tambieacuten podraacuten surgir problemas y fallos para los cuales tendriacuteamos que volver a
realizar todo el proceso anteriormente citado de modo que puedan ser corregidos
Por este motivo es importante realizar numerosas pruebas en tiempo de ejecucioacuten antes
de presentar el programa al cliente
Otro sistema para la ejecucioacuten de nuestro coacutedigo fuente es mediante el uso de
inteacuterpretes (estos no se encontrariacutean dentro de los traductores)
Inteacuterpretes Los inteacuterpretes realizan la traduccioacuten y ejecucioacuten de forma
simultanea es decir un inteacuterprete lee el coacutedigo fuente y lo va ejecutando al mismo
tiempo Las diferencias entre un compilador y un inteacuterprete
baacutesicamente son bull Un programa compilado puede funcionar por si solo
mientras que un coacutedigo traducido por un inteacuterprete no puede funcionar sin eacuteste bull Un programa traducido por un inteacuterprete puede ser
ejecutado en cualquier maacutequina ya que cada vez que se ejecuta el inteacuterprete tiene
que compilarlo bull Un archivo compilado es mucho maacutes raacutepido que uno
interpretado
Anexo Evaluacion
iquest que es la poo
La programacioacuten Orientada a objetos (POO) es una forma especial de programar maacutes cercana a como expresariacuteamos las cosas en la vida real que otros tipos de programacioacuten Con la POO tenemos que aprender a pensar las cosas de una manera distinta para escribir nuestros programas en teacuterminos de objetos propiedades meacutetodos y otras cosas que veremos raacutepidamente para aclarar conceptos y dar una pequentildea base que permita soltarnos un poco con este tipo de programacioacuten
iquest que es programacioacuten
Un lenguaje de programacioacuten es un idioma artificial disentildeado para expresar computaciones que pueden ser llevadas a cabo por maacutequinas como las computadoras Pueden usarse para crear programas que controlen el comportamiento fiacutesico y loacutegico de una maacutequina para expresar algoritmos con precisioacuten o como modo de comunicacioacuten humana Estaacute formado de un conjunto de siacutembolos y reglas sintaacutecticas y semaacutenticas que definen su estructura y el significado de sus elementos y expresiones Al proceso por el cual se escribe se prueba se depura se compila y se mantiene el coacutedigo fuente de un programa informaacutetico se le llama programacioacuten
iquestQueacute es compilador
Un compilador es un programa informaacutetico que traduce un programa escrito en un lenguaje de programacioacuten a otro lenguaje de programacioacuten generando un programa equivalente que la maacutequina seraacute capaz de interpretar Usualmente el segundo lenguaje es lenguaje de maacutequina pero tambieacuten puede ser simplemente texto Este proceso de traduccioacuten se conoce como compilacioacuten
Un compilador es un programa que permite traducir el coacutedigo fuente de un programa en lenguaje de alto nivel a otro lenguaje de nivel inferior (tiacutepicamente lenguaje de maacutequina) De esta manera un programador puede disentildear un programa en un lenguaje mucho maacutes cercano a como piensa un ser humano para luego compilarlo a un programa maacutes manejable por una computadora
menciona una paradigma de programacioacuten
Paradigama logico
La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica
Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por
expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten
interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de
lenguaje loacutegico es Prolog (Programacioacuten loacutegica)
iquest que es lenguaje java La implementacioacuten original y de referencia del compilador la
maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible
Caracteriacutesticas - Se trabaja a nivel de Microinstrucciones es decir su programacioacuten es al
maacutes fino detalle - Estaacute orientado a la maacutequina Lenguaje de alto nivel Los lenguajes de alto nivel logran la independencia del tipo de maacutequina
y se aproximan al lenguaje natural Se puede decir que el principal problema que
presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen
actualmente en uso Los lenguajes de alto nivel tambieacuten denominados lenguajes
evolucionados surgen con posterioridad a los anteriores con los siguientes objetivos entre otros 1048707 Lograr independencia de la maacutequina pudiendo utilizar un mismo
programa en diferentes equipos con la uacutenica condicioacuten de disponer de un programa
traductor o compilador que lo suministra el fabricante para obtener el programa ejecutable en lenguaje binario de la maacutequina que se trate Ademaacutes no
se necesita conocer el hardware especiacutefico de dicha maacutequina
TRADUCTORES
TRADUCTORES Explicamos el proceso maacutes importante a la hora de hacer
funcionar un programa realizado en lenguajes de alto y medio nivel Cuando programamos en lenguajes de alto nivel lo que
estamos haciendo en realidad es el coacutedigo fuente de ese programa Este coacutedigo fuente debe ser traducido a binario para que las
instrucciones que contienen puedan ser entendidas y ejecutadas por la maacutequina Para esto existe un programa encargado de realizar la
traduccioacuten llamado traductor del lenguaje Estos traductores pueden ser de dos tipos Ensambladores
Son los encargados de traducir los programas escritos en lenguaje ensamblador alenguaje maacutequina
Compiladores
Son programas que leen el coacutedigo fuente y lo traducen o convierten a otro lenguajeEstos programas te muestran los errores existentes en el coacutedigo fuente
Etapas del proceso de compilacioacuten
Edicioacuten Esta fase consiste en escribir el programa empleando alguacuten lenguaje y un
editor Como resultado nos daraacute el coacutedigo fuente de nuestro programa
Compilacioacuten En esta fase se traduce el coacutedigo fuente obtenido en la fase anterior a
coacutedigo maacutequina Si no se produce ninguacuten error se obtiene el coacutedigo objeto En caso derrores el compilador los mostrariacutea para ayudarnos a corregirlos y se procederiacutea a su
compilacioacuten de nuevo una vez corregidos
Linkado Esta fase consiste en unir el archivo generado en la fase dos con determinadas
rutinas internas del lenguaje obteniendo el programa ejecutable
Existen dos tipos de linkados
linkado estaacutetico Los binarios de las libreriacuteas se antildeaden a nuestros binarios compilados
generando el archivo ejecutable
Linkado dinaacutemico no se antildeaden las libreriacuteas a nuestro binario sino que haraacute que se
carguen en memoria las libreriacuteas que en ese momento se necesiten
Una vez traducido compilado y linkado el archivo esta listo para su ejecucioacuten donde
tambieacuten podraacuten surgir problemas y fallos para los cuales tendriacuteamos que volver a
realizar todo el proceso anteriormente citado de modo que puedan ser corregidos
Por este motivo es importante realizar numerosas pruebas en tiempo de ejecucioacuten antes
de presentar el programa al cliente
Otro sistema para la ejecucioacuten de nuestro coacutedigo fuente es mediante el uso de
inteacuterpretes (estos no se encontrariacutean dentro de los traductores)
Inteacuterpretes Los inteacuterpretes realizan la traduccioacuten y ejecucioacuten de forma
simultanea es decir un inteacuterprete lee el coacutedigo fuente y lo va ejecutando al mismo
tiempo Las diferencias entre un compilador y un inteacuterprete
baacutesicamente son bull Un programa compilado puede funcionar por si solo
mientras que un coacutedigo traducido por un inteacuterprete no puede funcionar sin eacuteste bull Un programa traducido por un inteacuterprete puede ser
ejecutado en cualquier maacutequina ya que cada vez que se ejecuta el inteacuterprete tiene
que compilarlo bull Un archivo compilado es mucho maacutes raacutepido que uno
interpretado
Anexo Evaluacion
iquest que es la poo
La programacioacuten Orientada a objetos (POO) es una forma especial de programar maacutes cercana a como expresariacuteamos las cosas en la vida real que otros tipos de programacioacuten Con la POO tenemos que aprender a pensar las cosas de una manera distinta para escribir nuestros programas en teacuterminos de objetos propiedades meacutetodos y otras cosas que veremos raacutepidamente para aclarar conceptos y dar una pequentildea base que permita soltarnos un poco con este tipo de programacioacuten
iquest que es programacioacuten
Un lenguaje de programacioacuten es un idioma artificial disentildeado para expresar computaciones que pueden ser llevadas a cabo por maacutequinas como las computadoras Pueden usarse para crear programas que controlen el comportamiento fiacutesico y loacutegico de una maacutequina para expresar algoritmos con precisioacuten o como modo de comunicacioacuten humana Estaacute formado de un conjunto de siacutembolos y reglas sintaacutecticas y semaacutenticas que definen su estructura y el significado de sus elementos y expresiones Al proceso por el cual se escribe se prueba se depura se compila y se mantiene el coacutedigo fuente de un programa informaacutetico se le llama programacioacuten
iquestQueacute es compilador
Un compilador es un programa informaacutetico que traduce un programa escrito en un lenguaje de programacioacuten a otro lenguaje de programacioacuten generando un programa equivalente que la maacutequina seraacute capaz de interpretar Usualmente el segundo lenguaje es lenguaje de maacutequina pero tambieacuten puede ser simplemente texto Este proceso de traduccioacuten se conoce como compilacioacuten
Un compilador es un programa que permite traducir el coacutedigo fuente de un programa en lenguaje de alto nivel a otro lenguaje de nivel inferior (tiacutepicamente lenguaje de maacutequina) De esta manera un programador puede disentildear un programa en un lenguaje mucho maacutes cercano a como piensa un ser humano para luego compilarlo a un programa maacutes manejable por una computadora
menciona una paradigma de programacioacuten
Paradigama logico
La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica
Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por
expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten
interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de
lenguaje loacutegico es Prolog (Programacioacuten loacutegica)
iquest que es lenguaje java La implementacioacuten original y de referencia del compilador la
maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible
TRADUCTORES
TRADUCTORES Explicamos el proceso maacutes importante a la hora de hacer
funcionar un programa realizado en lenguajes de alto y medio nivel Cuando programamos en lenguajes de alto nivel lo que
estamos haciendo en realidad es el coacutedigo fuente de ese programa Este coacutedigo fuente debe ser traducido a binario para que las
instrucciones que contienen puedan ser entendidas y ejecutadas por la maacutequina Para esto existe un programa encargado de realizar la
traduccioacuten llamado traductor del lenguaje Estos traductores pueden ser de dos tipos Ensambladores
Son los encargados de traducir los programas escritos en lenguaje ensamblador alenguaje maacutequina
Compiladores
Son programas que leen el coacutedigo fuente y lo traducen o convierten a otro lenguajeEstos programas te muestran los errores existentes en el coacutedigo fuente
Etapas del proceso de compilacioacuten
Edicioacuten Esta fase consiste en escribir el programa empleando alguacuten lenguaje y un
editor Como resultado nos daraacute el coacutedigo fuente de nuestro programa
Compilacioacuten En esta fase se traduce el coacutedigo fuente obtenido en la fase anterior a
coacutedigo maacutequina Si no se produce ninguacuten error se obtiene el coacutedigo objeto En caso derrores el compilador los mostrariacutea para ayudarnos a corregirlos y se procederiacutea a su
compilacioacuten de nuevo una vez corregidos
Linkado Esta fase consiste en unir el archivo generado en la fase dos con determinadas
rutinas internas del lenguaje obteniendo el programa ejecutable
Existen dos tipos de linkados
linkado estaacutetico Los binarios de las libreriacuteas se antildeaden a nuestros binarios compilados
generando el archivo ejecutable
Linkado dinaacutemico no se antildeaden las libreriacuteas a nuestro binario sino que haraacute que se
carguen en memoria las libreriacuteas que en ese momento se necesiten
Una vez traducido compilado y linkado el archivo esta listo para su ejecucioacuten donde
tambieacuten podraacuten surgir problemas y fallos para los cuales tendriacuteamos que volver a
realizar todo el proceso anteriormente citado de modo que puedan ser corregidos
Por este motivo es importante realizar numerosas pruebas en tiempo de ejecucioacuten antes
de presentar el programa al cliente
Otro sistema para la ejecucioacuten de nuestro coacutedigo fuente es mediante el uso de
inteacuterpretes (estos no se encontrariacutean dentro de los traductores)
Inteacuterpretes Los inteacuterpretes realizan la traduccioacuten y ejecucioacuten de forma
simultanea es decir un inteacuterprete lee el coacutedigo fuente y lo va ejecutando al mismo
tiempo Las diferencias entre un compilador y un inteacuterprete
baacutesicamente son bull Un programa compilado puede funcionar por si solo
mientras que un coacutedigo traducido por un inteacuterprete no puede funcionar sin eacuteste bull Un programa traducido por un inteacuterprete puede ser
ejecutado en cualquier maacutequina ya que cada vez que se ejecuta el inteacuterprete tiene
que compilarlo bull Un archivo compilado es mucho maacutes raacutepido que uno
interpretado
Anexo Evaluacion
iquest que es la poo
La programacioacuten Orientada a objetos (POO) es una forma especial de programar maacutes cercana a como expresariacuteamos las cosas en la vida real que otros tipos de programacioacuten Con la POO tenemos que aprender a pensar las cosas de una manera distinta para escribir nuestros programas en teacuterminos de objetos propiedades meacutetodos y otras cosas que veremos raacutepidamente para aclarar conceptos y dar una pequentildea base que permita soltarnos un poco con este tipo de programacioacuten
iquest que es programacioacuten
Un lenguaje de programacioacuten es un idioma artificial disentildeado para expresar computaciones que pueden ser llevadas a cabo por maacutequinas como las computadoras Pueden usarse para crear programas que controlen el comportamiento fiacutesico y loacutegico de una maacutequina para expresar algoritmos con precisioacuten o como modo de comunicacioacuten humana Estaacute formado de un conjunto de siacutembolos y reglas sintaacutecticas y semaacutenticas que definen su estructura y el significado de sus elementos y expresiones Al proceso por el cual se escribe se prueba se depura se compila y se mantiene el coacutedigo fuente de un programa informaacutetico se le llama programacioacuten
iquestQueacute es compilador
Un compilador es un programa informaacutetico que traduce un programa escrito en un lenguaje de programacioacuten a otro lenguaje de programacioacuten generando un programa equivalente que la maacutequina seraacute capaz de interpretar Usualmente el segundo lenguaje es lenguaje de maacutequina pero tambieacuten puede ser simplemente texto Este proceso de traduccioacuten se conoce como compilacioacuten
Un compilador es un programa que permite traducir el coacutedigo fuente de un programa en lenguaje de alto nivel a otro lenguaje de nivel inferior (tiacutepicamente lenguaje de maacutequina) De esta manera un programador puede disentildear un programa en un lenguaje mucho maacutes cercano a como piensa un ser humano para luego compilarlo a un programa maacutes manejable por una computadora
menciona una paradigma de programacioacuten
Paradigama logico
La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica
Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por
expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten
interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de
lenguaje loacutegico es Prolog (Programacioacuten loacutegica)
iquest que es lenguaje java La implementacioacuten original y de referencia del compilador la
maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible
Son los encargados de traducir los programas escritos en lenguaje ensamblador alenguaje maacutequina
Compiladores
Son programas que leen el coacutedigo fuente y lo traducen o convierten a otro lenguajeEstos programas te muestran los errores existentes en el coacutedigo fuente
Etapas del proceso de compilacioacuten
Edicioacuten Esta fase consiste en escribir el programa empleando alguacuten lenguaje y un
editor Como resultado nos daraacute el coacutedigo fuente de nuestro programa
Compilacioacuten En esta fase se traduce el coacutedigo fuente obtenido en la fase anterior a
coacutedigo maacutequina Si no se produce ninguacuten error se obtiene el coacutedigo objeto En caso derrores el compilador los mostrariacutea para ayudarnos a corregirlos y se procederiacutea a su
compilacioacuten de nuevo una vez corregidos
Linkado Esta fase consiste en unir el archivo generado en la fase dos con determinadas
rutinas internas del lenguaje obteniendo el programa ejecutable
Existen dos tipos de linkados
linkado estaacutetico Los binarios de las libreriacuteas se antildeaden a nuestros binarios compilados
generando el archivo ejecutable
Linkado dinaacutemico no se antildeaden las libreriacuteas a nuestro binario sino que haraacute que se
carguen en memoria las libreriacuteas que en ese momento se necesiten
Una vez traducido compilado y linkado el archivo esta listo para su ejecucioacuten donde
tambieacuten podraacuten surgir problemas y fallos para los cuales tendriacuteamos que volver a
realizar todo el proceso anteriormente citado de modo que puedan ser corregidos
Por este motivo es importante realizar numerosas pruebas en tiempo de ejecucioacuten antes
de presentar el programa al cliente
Otro sistema para la ejecucioacuten de nuestro coacutedigo fuente es mediante el uso de
inteacuterpretes (estos no se encontrariacutean dentro de los traductores)
Inteacuterpretes Los inteacuterpretes realizan la traduccioacuten y ejecucioacuten de forma
simultanea es decir un inteacuterprete lee el coacutedigo fuente y lo va ejecutando al mismo
tiempo Las diferencias entre un compilador y un inteacuterprete
baacutesicamente son bull Un programa compilado puede funcionar por si solo
mientras que un coacutedigo traducido por un inteacuterprete no puede funcionar sin eacuteste bull Un programa traducido por un inteacuterprete puede ser
ejecutado en cualquier maacutequina ya que cada vez que se ejecuta el inteacuterprete tiene
que compilarlo bull Un archivo compilado es mucho maacutes raacutepido que uno
interpretado
Anexo Evaluacion
iquest que es la poo
La programacioacuten Orientada a objetos (POO) es una forma especial de programar maacutes cercana a como expresariacuteamos las cosas en la vida real que otros tipos de programacioacuten Con la POO tenemos que aprender a pensar las cosas de una manera distinta para escribir nuestros programas en teacuterminos de objetos propiedades meacutetodos y otras cosas que veremos raacutepidamente para aclarar conceptos y dar una pequentildea base que permita soltarnos un poco con este tipo de programacioacuten
iquest que es programacioacuten
Un lenguaje de programacioacuten es un idioma artificial disentildeado para expresar computaciones que pueden ser llevadas a cabo por maacutequinas como las computadoras Pueden usarse para crear programas que controlen el comportamiento fiacutesico y loacutegico de una maacutequina para expresar algoritmos con precisioacuten o como modo de comunicacioacuten humana Estaacute formado de un conjunto de siacutembolos y reglas sintaacutecticas y semaacutenticas que definen su estructura y el significado de sus elementos y expresiones Al proceso por el cual se escribe se prueba se depura se compila y se mantiene el coacutedigo fuente de un programa informaacutetico se le llama programacioacuten
iquestQueacute es compilador
Un compilador es un programa informaacutetico que traduce un programa escrito en un lenguaje de programacioacuten a otro lenguaje de programacioacuten generando un programa equivalente que la maacutequina seraacute capaz de interpretar Usualmente el segundo lenguaje es lenguaje de maacutequina pero tambieacuten puede ser simplemente texto Este proceso de traduccioacuten se conoce como compilacioacuten
Un compilador es un programa que permite traducir el coacutedigo fuente de un programa en lenguaje de alto nivel a otro lenguaje de nivel inferior (tiacutepicamente lenguaje de maacutequina) De esta manera un programador puede disentildear un programa en un lenguaje mucho maacutes cercano a como piensa un ser humano para luego compilarlo a un programa maacutes manejable por una computadora
menciona una paradigma de programacioacuten
Paradigama logico
La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica
Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por
expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten
interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de
lenguaje loacutegico es Prolog (Programacioacuten loacutegica)
iquest que es lenguaje java La implementacioacuten original y de referencia del compilador la
maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible
Compiladores
Son programas que leen el coacutedigo fuente y lo traducen o convierten a otro lenguajeEstos programas te muestran los errores existentes en el coacutedigo fuente
Etapas del proceso de compilacioacuten
Edicioacuten Esta fase consiste en escribir el programa empleando alguacuten lenguaje y un
editor Como resultado nos daraacute el coacutedigo fuente de nuestro programa
Compilacioacuten En esta fase se traduce el coacutedigo fuente obtenido en la fase anterior a
coacutedigo maacutequina Si no se produce ninguacuten error se obtiene el coacutedigo objeto En caso derrores el compilador los mostrariacutea para ayudarnos a corregirlos y se procederiacutea a su
compilacioacuten de nuevo una vez corregidos
Linkado Esta fase consiste en unir el archivo generado en la fase dos con determinadas
rutinas internas del lenguaje obteniendo el programa ejecutable
Existen dos tipos de linkados
linkado estaacutetico Los binarios de las libreriacuteas se antildeaden a nuestros binarios compilados
generando el archivo ejecutable
Linkado dinaacutemico no se antildeaden las libreriacuteas a nuestro binario sino que haraacute que se
carguen en memoria las libreriacuteas que en ese momento se necesiten
Una vez traducido compilado y linkado el archivo esta listo para su ejecucioacuten donde
tambieacuten podraacuten surgir problemas y fallos para los cuales tendriacuteamos que volver a
realizar todo el proceso anteriormente citado de modo que puedan ser corregidos
Por este motivo es importante realizar numerosas pruebas en tiempo de ejecucioacuten antes
de presentar el programa al cliente
Otro sistema para la ejecucioacuten de nuestro coacutedigo fuente es mediante el uso de
inteacuterpretes (estos no se encontrariacutean dentro de los traductores)
Inteacuterpretes Los inteacuterpretes realizan la traduccioacuten y ejecucioacuten de forma
simultanea es decir un inteacuterprete lee el coacutedigo fuente y lo va ejecutando al mismo
tiempo Las diferencias entre un compilador y un inteacuterprete
baacutesicamente son bull Un programa compilado puede funcionar por si solo
mientras que un coacutedigo traducido por un inteacuterprete no puede funcionar sin eacuteste bull Un programa traducido por un inteacuterprete puede ser
ejecutado en cualquier maacutequina ya que cada vez que se ejecuta el inteacuterprete tiene
que compilarlo bull Un archivo compilado es mucho maacutes raacutepido que uno
interpretado
Anexo Evaluacion
iquest que es la poo
La programacioacuten Orientada a objetos (POO) es una forma especial de programar maacutes cercana a como expresariacuteamos las cosas en la vida real que otros tipos de programacioacuten Con la POO tenemos que aprender a pensar las cosas de una manera distinta para escribir nuestros programas en teacuterminos de objetos propiedades meacutetodos y otras cosas que veremos raacutepidamente para aclarar conceptos y dar una pequentildea base que permita soltarnos un poco con este tipo de programacioacuten
iquest que es programacioacuten
Un lenguaje de programacioacuten es un idioma artificial disentildeado para expresar computaciones que pueden ser llevadas a cabo por maacutequinas como las computadoras Pueden usarse para crear programas que controlen el comportamiento fiacutesico y loacutegico de una maacutequina para expresar algoritmos con precisioacuten o como modo de comunicacioacuten humana Estaacute formado de un conjunto de siacutembolos y reglas sintaacutecticas y semaacutenticas que definen su estructura y el significado de sus elementos y expresiones Al proceso por el cual se escribe se prueba se depura se compila y se mantiene el coacutedigo fuente de un programa informaacutetico se le llama programacioacuten
iquestQueacute es compilador
Un compilador es un programa informaacutetico que traduce un programa escrito en un lenguaje de programacioacuten a otro lenguaje de programacioacuten generando un programa equivalente que la maacutequina seraacute capaz de interpretar Usualmente el segundo lenguaje es lenguaje de maacutequina pero tambieacuten puede ser simplemente texto Este proceso de traduccioacuten se conoce como compilacioacuten
Un compilador es un programa que permite traducir el coacutedigo fuente de un programa en lenguaje de alto nivel a otro lenguaje de nivel inferior (tiacutepicamente lenguaje de maacutequina) De esta manera un programador puede disentildear un programa en un lenguaje mucho maacutes cercano a como piensa un ser humano para luego compilarlo a un programa maacutes manejable por una computadora
menciona una paradigma de programacioacuten
Paradigama logico
La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica
Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por
expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten
interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de
lenguaje loacutegico es Prolog (Programacioacuten loacutegica)
iquest que es lenguaje java La implementacioacuten original y de referencia del compilador la
maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible
Etapas del proceso de compilacioacuten
Edicioacuten Esta fase consiste en escribir el programa empleando alguacuten lenguaje y un
editor Como resultado nos daraacute el coacutedigo fuente de nuestro programa
Compilacioacuten En esta fase se traduce el coacutedigo fuente obtenido en la fase anterior a
coacutedigo maacutequina Si no se produce ninguacuten error se obtiene el coacutedigo objeto En caso derrores el compilador los mostrariacutea para ayudarnos a corregirlos y se procederiacutea a su
compilacioacuten de nuevo una vez corregidos
Linkado Esta fase consiste en unir el archivo generado en la fase dos con determinadas
rutinas internas del lenguaje obteniendo el programa ejecutable
Existen dos tipos de linkados
linkado estaacutetico Los binarios de las libreriacuteas se antildeaden a nuestros binarios compilados
generando el archivo ejecutable
Linkado dinaacutemico no se antildeaden las libreriacuteas a nuestro binario sino que haraacute que se
carguen en memoria las libreriacuteas que en ese momento se necesiten
Una vez traducido compilado y linkado el archivo esta listo para su ejecucioacuten donde
tambieacuten podraacuten surgir problemas y fallos para los cuales tendriacuteamos que volver a
realizar todo el proceso anteriormente citado de modo que puedan ser corregidos
Por este motivo es importante realizar numerosas pruebas en tiempo de ejecucioacuten antes
de presentar el programa al cliente
Otro sistema para la ejecucioacuten de nuestro coacutedigo fuente es mediante el uso de
inteacuterpretes (estos no se encontrariacutean dentro de los traductores)
Inteacuterpretes Los inteacuterpretes realizan la traduccioacuten y ejecucioacuten de forma
simultanea es decir un inteacuterprete lee el coacutedigo fuente y lo va ejecutando al mismo
tiempo Las diferencias entre un compilador y un inteacuterprete
baacutesicamente son bull Un programa compilado puede funcionar por si solo
mientras que un coacutedigo traducido por un inteacuterprete no puede funcionar sin eacuteste bull Un programa traducido por un inteacuterprete puede ser
ejecutado en cualquier maacutequina ya que cada vez que se ejecuta el inteacuterprete tiene
que compilarlo bull Un archivo compilado es mucho maacutes raacutepido que uno
interpretado
Anexo Evaluacion
iquest que es la poo
La programacioacuten Orientada a objetos (POO) es una forma especial de programar maacutes cercana a como expresariacuteamos las cosas en la vida real que otros tipos de programacioacuten Con la POO tenemos que aprender a pensar las cosas de una manera distinta para escribir nuestros programas en teacuterminos de objetos propiedades meacutetodos y otras cosas que veremos raacutepidamente para aclarar conceptos y dar una pequentildea base que permita soltarnos un poco con este tipo de programacioacuten
iquest que es programacioacuten
Un lenguaje de programacioacuten es un idioma artificial disentildeado para expresar computaciones que pueden ser llevadas a cabo por maacutequinas como las computadoras Pueden usarse para crear programas que controlen el comportamiento fiacutesico y loacutegico de una maacutequina para expresar algoritmos con precisioacuten o como modo de comunicacioacuten humana Estaacute formado de un conjunto de siacutembolos y reglas sintaacutecticas y semaacutenticas que definen su estructura y el significado de sus elementos y expresiones Al proceso por el cual se escribe se prueba se depura se compila y se mantiene el coacutedigo fuente de un programa informaacutetico se le llama programacioacuten
iquestQueacute es compilador
Un compilador es un programa informaacutetico que traduce un programa escrito en un lenguaje de programacioacuten a otro lenguaje de programacioacuten generando un programa equivalente que la maacutequina seraacute capaz de interpretar Usualmente el segundo lenguaje es lenguaje de maacutequina pero tambieacuten puede ser simplemente texto Este proceso de traduccioacuten se conoce como compilacioacuten
Un compilador es un programa que permite traducir el coacutedigo fuente de un programa en lenguaje de alto nivel a otro lenguaje de nivel inferior (tiacutepicamente lenguaje de maacutequina) De esta manera un programador puede disentildear un programa en un lenguaje mucho maacutes cercano a como piensa un ser humano para luego compilarlo a un programa maacutes manejable por una computadora
menciona una paradigma de programacioacuten
Paradigama logico
La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica
Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por
expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten
interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de
lenguaje loacutegico es Prolog (Programacioacuten loacutegica)
iquest que es lenguaje java La implementacioacuten original y de referencia del compilador la
maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible
Inteacuterpretes Los inteacuterpretes realizan la traduccioacuten y ejecucioacuten de forma
simultanea es decir un inteacuterprete lee el coacutedigo fuente y lo va ejecutando al mismo
tiempo Las diferencias entre un compilador y un inteacuterprete
baacutesicamente son bull Un programa compilado puede funcionar por si solo
mientras que un coacutedigo traducido por un inteacuterprete no puede funcionar sin eacuteste bull Un programa traducido por un inteacuterprete puede ser
ejecutado en cualquier maacutequina ya que cada vez que se ejecuta el inteacuterprete tiene
que compilarlo bull Un archivo compilado es mucho maacutes raacutepido que uno
interpretado
Anexo Evaluacion
iquest que es la poo
La programacioacuten Orientada a objetos (POO) es una forma especial de programar maacutes cercana a como expresariacuteamos las cosas en la vida real que otros tipos de programacioacuten Con la POO tenemos que aprender a pensar las cosas de una manera distinta para escribir nuestros programas en teacuterminos de objetos propiedades meacutetodos y otras cosas que veremos raacutepidamente para aclarar conceptos y dar una pequentildea base que permita soltarnos un poco con este tipo de programacioacuten
iquest que es programacioacuten
Un lenguaje de programacioacuten es un idioma artificial disentildeado para expresar computaciones que pueden ser llevadas a cabo por maacutequinas como las computadoras Pueden usarse para crear programas que controlen el comportamiento fiacutesico y loacutegico de una maacutequina para expresar algoritmos con precisioacuten o como modo de comunicacioacuten humana Estaacute formado de un conjunto de siacutembolos y reglas sintaacutecticas y semaacutenticas que definen su estructura y el significado de sus elementos y expresiones Al proceso por el cual se escribe se prueba se depura se compila y se mantiene el coacutedigo fuente de un programa informaacutetico se le llama programacioacuten
iquestQueacute es compilador
Un compilador es un programa informaacutetico que traduce un programa escrito en un lenguaje de programacioacuten a otro lenguaje de programacioacuten generando un programa equivalente que la maacutequina seraacute capaz de interpretar Usualmente el segundo lenguaje es lenguaje de maacutequina pero tambieacuten puede ser simplemente texto Este proceso de traduccioacuten se conoce como compilacioacuten
Un compilador es un programa que permite traducir el coacutedigo fuente de un programa en lenguaje de alto nivel a otro lenguaje de nivel inferior (tiacutepicamente lenguaje de maacutequina) De esta manera un programador puede disentildear un programa en un lenguaje mucho maacutes cercano a como piensa un ser humano para luego compilarlo a un programa maacutes manejable por una computadora
menciona una paradigma de programacioacuten
Paradigama logico
La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica
Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por
expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten
interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de
lenguaje loacutegico es Prolog (Programacioacuten loacutegica)
iquest que es lenguaje java La implementacioacuten original y de referencia del compilador la
maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible
Anexo Evaluacion
iquest que es la poo
La programacioacuten Orientada a objetos (POO) es una forma especial de programar maacutes cercana a como expresariacuteamos las cosas en la vida real que otros tipos de programacioacuten Con la POO tenemos que aprender a pensar las cosas de una manera distinta para escribir nuestros programas en teacuterminos de objetos propiedades meacutetodos y otras cosas que veremos raacutepidamente para aclarar conceptos y dar una pequentildea base que permita soltarnos un poco con este tipo de programacioacuten
iquest que es programacioacuten
Un lenguaje de programacioacuten es un idioma artificial disentildeado para expresar computaciones que pueden ser llevadas a cabo por maacutequinas como las computadoras Pueden usarse para crear programas que controlen el comportamiento fiacutesico y loacutegico de una maacutequina para expresar algoritmos con precisioacuten o como modo de comunicacioacuten humana Estaacute formado de un conjunto de siacutembolos y reglas sintaacutecticas y semaacutenticas que definen su estructura y el significado de sus elementos y expresiones Al proceso por el cual se escribe se prueba se depura se compila y se mantiene el coacutedigo fuente de un programa informaacutetico se le llama programacioacuten
iquestQueacute es compilador
Un compilador es un programa informaacutetico que traduce un programa escrito en un lenguaje de programacioacuten a otro lenguaje de programacioacuten generando un programa equivalente que la maacutequina seraacute capaz de interpretar Usualmente el segundo lenguaje es lenguaje de maacutequina pero tambieacuten puede ser simplemente texto Este proceso de traduccioacuten se conoce como compilacioacuten
Un compilador es un programa que permite traducir el coacutedigo fuente de un programa en lenguaje de alto nivel a otro lenguaje de nivel inferior (tiacutepicamente lenguaje de maacutequina) De esta manera un programador puede disentildear un programa en un lenguaje mucho maacutes cercano a como piensa un ser humano para luego compilarlo a un programa maacutes manejable por una computadora
menciona una paradigma de programacioacuten
Paradigama logico
La Programacioacuten Loacutegica es un Paradigma de Programacioacuten basado en la Loacutegica
Los programas construidos un lenguaje loacutegico estaacuten construidos uacutenicamente por
expresiones loacutegicas es decir que son ciertas o falsas en oposicioacuten a un expresioacuten
interrogativa (una pregunta) o expresiones imperativas (una orden) Un ejemplo de
lenguaje loacutegico es Prolog (Programacioacuten loacutegica)
iquest que es lenguaje java La implementacioacuten original y de referencia del compilador la
maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible
iquest que es lenguaje java La implementacioacuten original y de referencia del compilador la
maacutequina virtual y las bibliotecas de clases de Java fueron desarrollados por Sun Microsystems en 1995 Desde entonces Sun ha controlado las especificaciones el desarrollo y evolucioacuten del lenguaje a traveacutes del Java Community Process si bien otros han desarrollado tambieacuten implementaciones alternativas de estas tecnologiacuteas de Sun algunas incluso bajo licencias de software libre
Las aplicaciones Java estaacuten tiacutepicamente compiladas en un bytecode aunque la compilacioacuten en coacutedigo maacutequina nativo tambieacuten es posible En el tiempo de ejecucioacuten el bytecode es normalmente interpretado o compilado a coacutedigo nativo para la ejecucioacuten aunque la ejecucioacuten directa por hardware del bytecode por un procesador Java tambieacuten es posible