INSTITUTO TECNOLÓGICO DE TIJUANA DEPARTAMENTO DE INGENIERÍA INDUSTRIAL AGOSTO - DICIEMBRE 2015 2015
Manufactua A!an"a#a UNIDAD II L$n%ua&$' #$ ()%a*ac+,n Gu"*.n #$/ Sa" J)%$ E#ua#) 112110
22/11/2015
1 . 1Di f e r e nc i a s,a pl i c ac i one sypa r t i c ul a r i da de sdel osl e ngua j e sdepr ogr a ma ma ci ón
Un lenguaje de programación consiste en todos los símbolos, caracteres y regla eglass de uso uso que que perm ermiten iten a las las pers ersonas nas "comu omunica nicarrse" con las las computadoras. computadoras. Existen varios cientos de lenguajes y dialectos de programación diferentes. Algunos se crean para una aplicación especial, mientras que otros son erram erramien ientas tas de uso genera generall m!s exib exibles les que que son son apropi apropiad adas as para para mucos tipos de aplicaciones. En todo caso los lenguajes de programación deben tener instrucciones que pertenecen a las categorías ya familiares de entr entrad ada# a#sa sali lida da,, c! c!lc lcul ulo# o#ma mani nipu pula laci ción ón de text textos os,, lógi lógica ca#c #com ompa para raci ción ón y almacenamiento # recuperación. Aunq Aunque ue todo todoss los los leng lengua uaje jess de prog progra rama maci ción ón tien tienen en un co conj njun unto to de instrucciones que permiten reali$ar dicas operaciones, existe una marcada diferencia en los símbolos, caracteres y sintaxis de los lenguajes de m!quina, lenguajes ensambladores y lenguajes de alto nivel. %on erramientas que nos permiten crear programas y soft&are. Entre ellos tenemos' tenemos' (), *elpi, *elpi, (, ++, +e +erl, rl, +yton,+yton,-isua isuall asic, asic, +as +ascal, cal, /ava, entre entre otros. 0a programación programación consiste en desarrollar desarrollar programas para procesar procesar información, información, se util utili$ i$a a para para desi design gnar ar la crea creaci ción ón de prog progra rama mass a pequ peque1 e1a a es esca cala la,, el desarrollo de sistemas complejos se denomina ingeniería de soft&are. Una computadora es totalmente in2til si no dispone de un programa capa$ de procesar información, para que se realice dico procesamiento de información abr! sido necesario pensar, construir, y crear un programa y ejecutar dico programa o aplicación en la computadora. +ara el desarrollo de grandes sistemas inform!ticos se divide el trabajo en tareas tareas que diversos diversos progra programado madores res desarrolla desarrollaran, ran, al termina terminarr se unen las pie$as para completar el sistema en sí, la programación tambi3n se aplica para el desarrollo de grandes sistemas en las ingenierías de soft&are. 0a prog progra rama maci ción ón tien tiene e como como obje objeti tivo vo el trat tratam amie ient nto o de la info inform rmac ació ión n correctamente, correctamente, con lo que se espera que un programa programa de el resultado correcto y no uno uno erró erróneo neo,, cada cada aplica aplicació ción n debe debe funcio funcionar nar seg2n seg2n lo espera esperado do en t3rminos de programación. 4tro objetivo fundamental de la programación es que sean de códigos claros y legibles, con lo que si un programador inicia un programa y no lo termina, otro programador sea capa$ de entender la codi5cación y poder terminarlo, en programación existen ciertas normas no escritas de cómo an de nombrarse los componentes, objetos o controles de cada sistema, así como sus variables que deben ser relativas al termino al cual se van a vincular. +or 2lti 2ltimo mo la prog progra rama maci ción ón pret preten ende de que que sus sus prog progra rama mass sean sean 2til 2tiles es y e5cientes, de mucs formas diferentes, la programación nos dar! el mismo resultado de un programa, un buen programador llegara al mismo resultado
con un mínimo de código y de la forma m!s clara y lógica posible, un código claro y legible facilita el mantenimiento de la aplicación o sistema. Una computadora funciona bajo control de un programa el cual debe estar almacenado en la unidad de memoria o unidades de almacenamiento como por ejemplo, el disco duro. 0os lenguajes de programación de una computadora en particular se conocen como código de m!quinas o lenguaje de m!quinas. Estos lenguajes codi5cados en una computadora especí5ca no podr!n ser ejecutados en otra computadora diferente. +ara que estos programas funcionen para diferentes computadoras ay que reali$ar una versión para cada una de ellas, lo que implica el aumento del costo de desarrollo. +or otra parte, los lenguajes de programación en código de m!quina son verdaderamente difíciles de entender para una persona, ya que est!n compuestos de códigos num3ricos sin sentido nemot3cnico. 0os lenguajes de programación facilitan la tarea de programación, ya que disponen de formas adecuadas que permiten ser leídas y escritas por personas, a su ve$ resultan independientes del modelo de computadora utili$ada, representan en forma simbólica y en manera de un texto los códigos que podr!n ser leídos por una persona. Existen estrategias que permiten ejecutar en una computadora un programa reali$ado en un lenguaje de programación simbólico. 0os procesadores del lenguaje son los programas que permiten el tratamiento de la información en forma de texto, representada en los lenguajes de programación simbólicos. ay lenguajes de programación que utili$an compilador, la ejecución de un programa con un compilador requiere de dos etapas' 67 8raducir el programa simbólico a código m!quina. 97 Ejecución y procesamiento de los datos. 4tros lenguajes de programación utili$an un programa int3rprete o traductor, el cual anali$a directamente la descripción simbólica del programa fuente y reali$a las instrucciones dadas.
El int3rprete en los lenguajes de programación simula una m!quina virtual, donde el lenguaje de m!quina es similar al lenguaje fuente. 0a ventaja del proceso interprete es que no necesita de dos fases para ejecutar el programa, sin embargo su inconveniente es que la velocidad de ejecución es m!s lenta ya que debe anali$ar e interpretar las instrucciones contenidas en el programa fuente. 0os lenguajes de programación est!n conformados por una serie de reglas sint!cticas y sem!nticas que ser!n utili$adas por el programador y a trav3s de las cuales crear! un programa o subprograma, las instrucciones que forman dico programa son conocidas como código fuente. 0os lenguajes de programación pueden clasi5carse de diversas maneras, como por ejemplo seg2n su nivel de abstracción' lenguaje de bajo nivel: lenguaje de nivel medio y lenguaje de alto nivel. 8ambi3n puede aber lenguajes seg2n la forma de ejecución, encontr!ndonos así con 3l y lenguajes interpretados. (A;A(8E;<%8=(A%' Existen mucos lenguajes de programación, que responden a necesidades especí5cas y que poseen características y funcionalidades especí5cas. +or lo tanto, la elección del lenguaje de programación depende, sobre todo, de los requerimientos a satisfacer, así como de los recursos existentes para la comprensión y la pr!ctica del lenguaje. (riterios de selección de un lenguaje de programación. Utilidad' f!cil de aprender, f!cil de usar por un programador experimentado ;endimiento' velocidad de ejecución de los programas, velocidad de ejecución del compilador. +ortabilidad y exibilidad a posibilidad de desarrollar el lenguaje y su implementación, existencia de bibliotecas de funciones, clases, etc. (ontinuidad' continuidad del fabricante, continuidad del lenguaje, continuidad de implementación, existencia de una norma internacional para de5nir el lenguaje, conformidad de implementación con respecto a la norma, existencia de varios fabricantes para un mismo lenguaje.
asic y +ascal que son erramientas de programación, idóneas para la iniciali$ación de los programadores. ( y (>> que sirven para la programación de sistemas. (obol, que es una erramienta de programación orientada acia sistemas de gestión empresarial como nominas y contabilidad. ?ortran, que son lenguajes especí5cos para c!lculos matem!ticos y o num3ricos. erramientas de programación para ambientes gr!5cos como son -isual asic, *elpi y -isual (. 8@0 y /ava, que permiten la creación de p!ginas E para =nternet. (0A%=?=(A(=BC' 0enguajes de bajo nivel. %on lenguajes totalmente dependientes de la m!quina, es decir que el programa que se reali$a con este tipo de lenguajes no se pueden migrar o utili$ar en otras maquinas, al estar pr!cticamente dise1ados a la medida del ard&are, aprovecan al m!ximo las características del mismo. *entro de este grupo se encuentran' El lenguaje maquina' este lenguaje ordena a la m!quina las operaciones fundamentales para su funcionamiento, consiste en la combinación de Ds y 6s para formar las ordenes entendibles por el ard&are de la maquina, es muco m!s r!pido que los lenguajes de alto nivel, la desventaja es que son bastantes difíciles de manejar y usar, adem!s de tener códigos fuente enormes donde encontrar un fallo es casi imposible. El lenguaje ensamblador es un derivado del lenguaje maquina y est! formado por abreviaturas de letras y n2meros llamadas mnemot3cnicos, con la aparición de este lenguaje se crearon los programas traductores para poder pasar los programas escritos en lenguaje ensamblador a lenguaje m!quina, como ventaja con respecto al código m!quina es que los códigos fuentes eran m!s cortos y los programas creados ocupaban menos memoria, las desventajas de este lenguaje siguen siendo pr!cticamente las mismas que las del lenguaje ensamblador, a1adiendo la di5cultad de tener que aprender un nuevo lenguaje difícil de probar y mantener. 0enguajes de alto nivel
%e encuentran m!s cercanos al lenguaje natural que al lenguaje m!quina, est!n dirigidos a solucionar problemas mediante el uso de E**Fs GEstructuras *in!micas de *atos7, son estructuras que pueden cambiar de tama1o durante la ejecución del programa, permiten crear estructuras de datos que se adapten a las necesidades reales de un programa, son lenguajes independientes de la arquitectura de la computadora, es decir que en principio, un programa escrito en un lenguaje de alto nivel, se puede migrar de una m!quina a otra sin ning2n tipo de problema. Estos lenguajes permiten al programador olvidarse por completo del funcionamiento interno de la maquinas para la que est!n dise1ando el programa, solo necesitan un traductor que entiendan el código fuente como las características de la maquina, suelen usar diferentes tipos de datos para la programación, ay lenguajes de propósito general y de propósito especi5co. 0enguajes de @edio nivel Estos lenguajes se encuentran en un punto medio entre los dos anteriores, dentro de estos lenguajes podría situarse ( ya que puede acceder a los registros del sistema, trabajar con direcciones de memoria, todas ellas características de lenguajes de bajo nivel y a la ve$ reali$ar operaciones de alto nivel. HECE;A(=4CE% +rimera generación' lenguaje maquina. %egunda generación' se crearon los primeros lenguajes ensambladores. 8ercera generación' se crean los primeros lenguajes de alto nivel. (uarta generación' son lenguajes capaces de generar código por si solos, con lo cuales se pueden reali$ar aplicaciones sin ser un experto en el lenguaje, aquí tambi3n se encuentran los lenguajes orientados a objetos, aciendo posible la reutili$ación de partes del código para otros programas. Iuinta generación' aquí se encuentran los lenguajes orientados a la inteligencia arti5cial, etos lenguajes todavía est!n poco desarrollados. +;4H;A@A(=BC EC ( El lenguaje de programación en (, es un lenguaje conocido como de alto nivel, es que es un lenguaje estructurado, lo que permite generar código claro y sencillo, ya que est! basado en la modularidad, est! estructurado en tres partes fundamentales, las cuales son, una librería est!ndar, un programa compilador y un procesador.
0a librería est!ndar en el lenguaje de programación (, no es m!s que librerías reali$adas en código objeto y puede aber sido reali$ada en otro lenguaje diferente que el (, etas librerías se deben colocar el un programa de lenguaje programación en (, en la instrucción conocida como =C(0U*E. El programa compilador en el lenguaje de programación en (, es el que tiene como función traducir las instrucciones del programa fuente en ( al lenguaje conocido por las computadoras, el llamado lenguaje maquina, el compilador, depura y detecta los posibles errores en el lenguaje fuente, y es capa$ de noti5car el error ocurrido al programador, mediante un mensaje de texto. En el lenguaje de programación en (, el preprocesador es un componente perteneciente propiamente al lenguaje (, el cual transforma el programa fuente traduciendo cada instrucción del programa fuente, de la siguiente forma' Elimina los comentarios colocados por el programador, incluye en el programa fuente el contenido de los arcivos que se encuentran declarados en el =C(0U*E, a estos arcivos se le suele llamar cabeceras, y por 2ltimo , sustituye los valores de las constantes declaradas en 3l de5ne, por su exibilidad y por ser un lenguaje de alto nivel, es empleado por mucos programadores. +;4H;A@A(=BC EC +A%(A0 El lenguaje de programación +ascal, es un lenguaje de alto nivel, y de propósito general, lo cual quiere decir que se puede utili$ar para cualquier tipo de propósitos, se considera un lenguaje estructurado, sencillo y pr!ctico para todos aquellos usuarios que se inician en el mundo de la programación, ya que fue creado con 5nes de aprendi$aje, al ser un lenguaje estructurado, sirve de base para cualquier otro lenguaje de alto nivel, por estas características es utili$ado en las universidades e institutos de educación para iniciali$ar a los futuros ingenieros en sistemas o inform!tica.
El lenguaje de programación +ascal, es idóneo en el estudio y de5nición de las estructuras de datos, su f!cil de5nición lo ace manejable para un programador novato, se pueden reali$ar desde programas formales, rutinas, utilitarios, asta cualquier clase de video juego, es un lenguaje de sintaxis sencilla, muy estructurado y que comprueba exaustivamente todo tipo de datos, ense1a buenas formas de programación, por su sencille$, su estructuración y su facilidad de lectura y entendimiento. +;4H;A@A(=BC /A-A
El lenguaje para la programación /ava, es un lenguaje orientado a objeto, de una plataforma independiente, fue desarrollado por la compa1ía %un @icrosystems, con la idea original de usarlo para la creación de p!ginas E, tiene mucas similitudes con el lenguaje ( y (>>, el aprendi$aje de la programación /ava ser! de f!cil comprensión por un programador que aya reali$ado programas en estos lenguajes. (on /ava, se pueden reali$ar distintos aplicativos, como son applets, que son aplicaciones especiales, que se ejecutan dentro de un navegador al ser cargada una p!gina 8@0 en un servidor E, por lo general los applets son programas peque1os y de propósitos especí5cos.
(on la programación /ava, se pueden reali$ar aplicaciones como un procesador de palabras, una oja que sirva para c!lculos, una aplicación gra5ca, permite la modularidad por lo que se pueden acer rutinas individuales que sean usadas por m!s de una aplicación, por ejemplo tenemos una rutina de impresión que puede servir para el procesador de palabras, como para la oja de c!lculo. 0a programación en /ava, permite el desarrollo de aplicaciones bajo el esquema de (liente %ervidor, como de aplicaciones distribuidas, lo que lo ace capa$ de conectar dos o m!s computadoras, ejecutando tareas simult!neamente, y de esta forma logra distribuir el trabajo a reali$ar.
+;4H;A@A(=BC EC -=%UA0 A%=( +rogramación en -isual asic es una forma !gil y simple de crear aplicaciones para @icrosoft indo&s, proporciona todas las erramientas necesarias para el desarrollo r!pido de aplicaciones. -isual asic le proporciona una erramienta ilimitada para crear aplicaciones en la red, permite construir de forma r!pida aplicaciones de indo&s, no es necesario conocer otros lenguajes de programación para poder saber programar en -isual asic, es una manera sencilla de crear aplicaciones, adem!s el lenguaje le ofrece una cantidad de erramientas para simpli5car esta labor, como proyectos, formularios, plantillas de objetos, controles personali$ados, addJins y un gestor de base de datos. +;4H;A@A(=BC E
0a programación eb, parte de las siglas &&&, que signi5can orld ide eb o telara1a mundial, para reali$ar una p!gina con la programación eb, se deben tener claros, tres conceptos fundamentales los cuales son, el U;0 es un sistema con el cual se locali$a un recurso dentro de la red, este recurso puede ser una p!gina eb, un servicio o cualquier otra cosa. En resumen el U;0 no es m!s que un nombre, que identi5ca una computadora, dentro de esa computadora un arcivo que indica el camino al recurso que se solicita. El siguiente concepto dentro de la programación eb, es el protocolo encargado de llevar la información que contiene una p!gina eb por toda la red de =nternet, como es el 88+ Gypertext 8ransfer +rotocol7. K por 2ltimo el lenguaje necesario cuya funcionalidad es la de representar cualquier clase de información que se encuentre almacenada en una p!gina eb, este lenguaje es el 8@0 Gypertext @arLup 0anguage7. En la programación eb, el 8@0 es el lenguaje que permite codi5car o preparar documentos de ipertexto, que viene a ser el lenguaje com2n para la construcción de una p!gina eb. +;4H;A@A(=BC *E0+= 0a programación en *elpi es un entorno de desarrollo exible y potente, es int3rprete de un lenguaje llamado 4bject +ascal, no es solo un int3rprete, sino que adem!s incluye otras erramientas para facilitar la escritura del código y el dise1o de la aplicación. En la interfa$ de programación *elpi podemos encontrar multitud de ventanas, iconos, men2 de opciones, la versión profesional tiene m!s componentes, así como códigos fuentes prefabricados, m!s completa aun es la versión cliente#servidor, que posibilita las acciones para =nternet o intranet. Una de las mayores ventajas de la programación delpi es que es una programación orientada a objeto. Un programa en *elpi consta de las siguientes secciones' un compilador el cual crea el ejecutable: una librería' conocida como -(0, la cual es una librería de clases: el =*E que viene siendo el ambiente de desarrollo integrado. 0a programación *elpi almacena la aplicación con arcivos de extensión .dpr, que de5ne al proyecto en sí. K arcivos .dfm el que guarda el formulario creado en *elpi. +;4H;A@A(=BC EC EM(E0 Excel, es un aplicativo el cual trabaja con datos num3ricos, representados en unas casillas contiguas, llamadas celdas, con la programación en Excel, se
pueden reali$ar c!lculos de gran utilidad y muy complejos, así como funciones combinando celdas de 5las y columnas. 8ambi3n se pueden crear listas las cuales trabajan como si fueran ases de *atos, gr!5cos y cualquier tipo de im!genes pueden ser agregadas en la programación en Excel. En Excel, se encuentra la oja principal conocida como el libro o el arcivo b!sico, cada libro est! conformado por ojas de c!lculo, en cada celda de estas ojas de c!lculo, se pueden agregar formatos para personali$ar estas, estos formatos pueden ser, cambio de color de las celdas, cambio del tipo de letra, cambiar el dise1o de los bordes, se pueden utili$ar formulas, con solo la instrucción N en la celdas, estas formulas, admiten desde una constante num3ricas, asta un c!lculo entre dos fecas dadas. En la programación en Excel, se pueden utili$ar tablas y gr!5cos din!micos, los cuales permiten combinar datos en forma de matrices con agrupaciones de datos, por 2ltimo y como un a1adido m!s, un libro completo de Excel, puede ser colocado como una p!gina E en =nternet.
+;4H;A@A(=BC E%8;U(8U;A*A 0a programación estructurada es una teoría de programación que consiste en construir programas de f!cil comprensión. Es especialmente 2til, cuando se necesitan reali$ar correcciones o modi5caciones despu3s de aber concluido un programa o aplicación. Al aberse utili$ado la programación estructurada, es muco m!s sencillo entender la codi5cación del programa, que se abr! eco en diferentes secciones. %e basa en una metodología de desarrollo de programas llamada re5namiento sucesivos' %e plantea una operación como un todo y se divide en segmentos m!s sencillos o de menor complejidad. Una ve$ terminado todos los segmentos del programa, se procede a uni5car las aplicaciones reali$adas por el pool de programadores. %i se a utili$ado adecuadamente la programación estructurada, esta integración debe ser sencilla y no presentar problemas al integrar la misma, y de presentar alg2n problema, ser! r!pidamente detectable para su corrección. 0a representación gr!5ca de la programación estructurada se reali$a a trav3s de diagramas de ujo o o& cart, el cual representa el programa con sus entradas, procesos y salidas. 0a programación estructurada propone segregar los procesos en estructuras lo m!s simple posibles, las cuales se conocen como secuencia, selección e interacción. Ellas est!n disponibles en todos los lenguajes modernos de programación imperativa en forma de sentencias. (ombinando esquemas
sencillos se pueden llegar a construir sistemas amplios y complejos pero de f!cil entendimiento. +;4H;A@A(=BC 4;=EC8A*A A 4/E84% 0a programación orientada a objetos, intenta simular el mundo real a trav3s del signi5cado de objetos que contiene características y funciones. 0os lenguajes orientados a objetos se clasi5can como lenguajes de quinta generación. (omo su mismo nombre indica, la programación orientada a objetos se basa en la idea de un objeto, que es una combinación de variables locales y procedimientos llamados m3todos que juntos conforman una entidad de programación. El termino encapsulación signi5ca, reunir y controlar el grupo resultante como un todo y no individualmente se usa para describir la combinación de estructuras de datos y de m3todos que son manipulados por el objeto. 0a llamada a un objeto es lo que se denomina pasar un "aviso" a un objeto. En la programación orientada a objetos la abstracción es un t3rmino externo al objeto, que controla la forma en que es visto por los dem!s. 0a modularidad se considera de la siguiente manera' Un programa grande siempre ser! m!s complicado que la suma de varios programas peque1os, con lo que se considera ventajoso dividir un gran sistema en diversos módulos. En la programación orientada a objetos tenemos la jerarquía, la cual consiste en la clasi5cación y organi$ación de las abstracciones seg2n su naturale$a. El m!s claro ejemplo de jerarquía es la erencia. %e de5ne la erencia como una jerarquía de extracciones, y la relación entre clases, donde se comparte la estructura y el comportamiento de una o m!s clase considerada como clases superiores o una superclase, con lo cual se resume que la erencia es una unidad independiente por si misma eredada de una abstracción o superclase. +;4H;A@A(=BC *E A0H4;=8@4% 0a programación de algoritmos no es m!s que el estudio de un problema, su an!lisis e implementación 5nal del mismo. En la programación de los algoritmos encontramos tres fases fundamentales, las cuales son' identi5cación del problema, an!lisis y desarrollo del problema e implementación. En la programación de algoritmos la identi5cación del problema no es m!s que, que es lo que se quiere acer, para ello en esta etapa, encontramos información de entrada o inicial, que servir! para el an!lisis del problema.
0a segunda etapa o fase es anali$ar el problema, en esta etapa es conveniente dividir o segregar las tareas necesarias e identi5cadas que ayudaran a la solución del problema dado. *e esta forma se simpli5car!n y ser!n m!s comprensibles para su desarrollo, es recomendable siempre ir de las tareas o actividades m!s simples a las m!s complejas. En esta fase se transforma la información de entrada recibida. 0a tercera etapa en la programación de algoritmos, consiste en la implantación y puesta en desarrollo del mismo, ace se obtiene la información y resultado 5nal resultante de las etapas anteriores. En la programación de algoritmos, se utili$a una nomenclatura llamada pseudocódigo, una ve$ reali$ados los algoritmos en pseudocódigo, estos pueden ser traducidos en cualquier lenguaje de programación. 1.2 Cuatro lenguajes más comunes
A*A Es un lenguaje estructurado parecido al +ascal destinado a controlar mecanismos en "tiempo real" Go sea una velocidad compatible con las necesidades reales7, pero de gran complejidad.Admite una programacion "orientada a objetos" y un sistema de alta modularidad de tipo yper8exto. ?ue elaborado a pedido del *epartamento de *efensa de los Estados Unidos y establecido como norma para todos los fabricantes que particcipaban en el programa de la =niciativa de *efensa Estrategica G=*E,tambien llamado "Huerra de las Halaxias". A%%E@0E; GEC%A@0A*4;7 (omo se1alado a proposito del "+rimer Civel" de los lenguajes, el Assembler es directamente dependiente de los circuitos electronicos de los procesadores Gque constituyen el nucleo de los computadores7, por lo cual escribir en Ensamblador sigue siendo una tarea muy compleja, a lo cual ay que sumar que el codigo varia de un procesador a otro aunque existe ya una jerga comun para ciertas operaciones como las aritmeticas y logicas, por ejemplo' A0H40 El A0H40 G"A0H4ritmic 0enguage" es el primer lenguaje que fue creado por un comite internacional. En 6OPD se reunieron representantes de varios paises Europeos y de Estados Unidos para crear un lenguaje destinado a "describir procesos" mediante instrucciones de control Giteraciones y alteraciones7 de nivel mas elevado que la existentes en las versiones existentes de su predecedor, el ?4;8;AC.
A%=( El A%=( G"eginners AllJpurpose %imbolic =nstruction (ode" nacio con los microcomputadores, como un lenguaje simpli5cado y multiproposito destinado a los usuarios noJespecialistas. +ermite resolver problemas numericos o comerciales asi como crear y mantener arcivos, reali$ar gra5cos lineales, etc. Es por esencia un lenguaje interpretado y noJestructurado. ( y (>> El lenguaje "(" es bastante reciente y esta especialmente orientado acia el desarrollo de soft&are de sistemas operativos y utilitarios que anteriormente se escribian en Assembler. %e usa oy como base para crear el soft&are que funciona con el sistema operativo "UC=M", logrando un alto grado de portabilidad, es dcir de independencia respecto de los procesadores Gcon lo cual es facil lograr que un mismo programa pueda ser ejecutado en diferentes modelos de computadores7. El "(>>" es un lenguaje desarrollado a partir del "(" pero con una estructura "orientada a objetos", lo cual facilita el mejor manejo d los datos. (440 El (440 G"(4mmon usinessJ4riented 0anguage" es uno de los primeros lenguajes de programacion creados. ?ue desarrollado en 6OPD por (4*A%K0 G(onference on *ata %ystems 0anguages", un comite en que participaron fabricantes y usuarios, a pedido de la @arina de los Estados Unidos. Este comite estuvo dirigido por la *ra. Hrace opper, una de las primeras programadoras de la computadora EC=A(. Es uno de los pocos lenguajes reconocidos como forma internacional Gamericana por el AC%= JAmerican Cacional %tandars =nstituteJ y europea por el =%4 J=nternacional 4rgani$ation for %tandardi$ationJ7. ?4;8;AC El ?4;8;AC G"?4;mula 8;ACslator" fue desarrollado entre los a1os 6OQR y 6OQS por un equipo dirigido por /ames acLus, fue el primer lenguaje compilado e inclusive oy en dia es usado ampliamente en la solucion de problemas numericos. Aunque fue el mas comun asta 6OSD, sigue siendo de primera importancia en aplicaciones cienti5cas por cuanto se adapta muy bien a la forma tradicional de escribir formulas matematicas. Al contrario, no se presta con facilidad al manejo de arcivos y produccion de tablas de resultados. K+E;8A0T "yper8alL" es el lenguaje desarrollado por *an inLler pra ill AtLinson, el creador de "yper(ard" para Apple@acintos. Esta orientado a la creacion de
aplicaciones conforme al sistema de "iperarcivos" Gsistemas de 5cas interrelacionadas donde se facilita el "navegar" de un arcivo a otro7. yper8alL es un buen ejemplo de lenguaje orientado a objetos. Este tipo de lenguaje combina la logica declarativa con los algoritmos. Un programa ya no es una secuencia de instrucciones sino un conjunto de objetos agrupados en conjuntos, de5nidos mediante atributos y a los cuales pueden asociarse instrucciones. 8@0 El 8@0 o "yper8ext @arLing 0anguage" es el lenguaje que se utili$a para crear paginas Jcomo la presenteJ en orld ide eb. El 8@0 se basa en los mismos principios que el yper8alL, permitiendo de5nir segmentos Gde texto o ilustraciones7 que remiten a otros, facilitando una "navegacion" por multiples vias, a gusto del usuario. Asi es como el boton "ome" tiene asociadas las instrucciones que indican al procesador que busque la primera 5ca o pagina del arcivo llamado "ome" o "index" en el arcivo del computador que presta el servicio de conexion Gservidor7. K si se ace un clic en una palabra subrayada, se pasa a ver otra seccion del mismo documento o algun otro documento Gotro "objeto". /A-A /A-A es un lenguaje de programacion basado en el (>> Gcon cambios en la sintaxis y nuevas restricciones de codi5cacion7. +ermite agregar animaciones y puntos sensibles en paginas de texto. Aunque se lo pretende presentar como "E0" lenguaje destinado a desarrollos para orld ide eb, es muco mas complejo que el 8@0 e incluso que otros lenguajes utili$ables por los bro&sers Gnavegadores7 de la eb. Una version muy reducida es el "/ava%cript", que se puede combinar con el lenguaje 8@0, dentro de una pagina &eb. 1. 3Queot r osl enguaj esr evol uci onanelmer cado LabVI EW ( a cr ó ni mod eLa bo r a t o r yVi r t u alI n s t r u me nt a t i o nEn gi n ee r i n gWo r k b en ch )e su nap l a t a f o r may e nt or n od ed es ar r ol l op ar ad i s eñ ars i s t e ma s,c o nu nl e ng uaj ed ep r o gr a ma ci ó nv i s ua lg r á fic o. Re c o me nd ad op ar as i s t e ma sh ar d wa r eys o f t wa r ed ep r u e ba s ,c o n t r o lyd i s e ñ o,s i mu l a d oo r e alye mb eb i d o,p ue sa c el e r al ap r o du c t i v i d ad .Ell e ng ua j eq ueu s as el l a mal e ng ua j eG, d on del aG s i mb ol i z aqu ee sl e ng ua j eGr á fi c o.
Es t ep r o gr a maf u ec r e ad op orNa t i o na lI n s t r u me nt s( 1 97 6)p a r af u nc i o na rs o br emá qu i n as MAC,s a l i óa lme r c a dop orp r i me r av e ze n1 98 6.Ah or ae s t ád i s p on i b l ep ar al a sp l a t a f o r ma s Wi ndows,UNI X,MAC y GNU/ Li nux.La penúl t i ma ver si ón es l a 2013,con l ai ncr eí bl e
d emo s t r a c i ó nd ep od er s eu s ars i mu l t á ne ame nt ep ar ae ld i s e ñod el fi r mwa r ed eu ni n s t r u me nt o RFdeúl t i magen er a ci ón,al apr ogr amac i óndeal t oni v eldelmi s moi ns t r ument o,t od oel l oc on c ódi goa bi er t o.Ypos t e r i o r men t el av er s i ón2014di s poni bl eenv er s i ónde mopa r aes t ud i an t es yp r o f e s i o na l ,l av e r s i ó nd emo s ep ue de d e s c ar g a rd i r e c t a me nt ed el ap ag i n a Na t i o na l I n st r ument s .
L osp r o gr a ma sd es a r r o l l a do sc o nL ab VI EW s el l a ma nI n s t r u me nt o s Vi r t u al e s ,o VI s ,ys u o r i g enp r o v en í ade lc on t r o ld ei n s t r u me nt o s,a un qu eh oyend í as eh ae x pan di d oa mpl i a men t e nos ól oalc ont r oldet odot i podeel ec t r óni c a( I ns t r ument ac i ónel ec t r óni c a)s i not ambi énas u p r o gr a ma c i ó ne mb eb i d a,c o mu ni c a c i o ne s ,ma t e má t i c a s ,e t c .Unl e mat r a di c i o na ld eL ab VI EW es :" Lapo t en ci aes t áe nelSo f t war e" ,quec onl aa pa r i c i ónd el ossi s t emasmul t i n úc l e os eh a h ec h oa ún má sp ot e nt e .En t r es u so bj e t i v o se s t á ne lr e du c i re lt i e mp od ed es a r r o l l od e apl i c ac i onesdet odot i po( nos ól oenámbi t osdePr u eb as ,Cont r olyDi s eñ o)yelpe r mi t i rl a e nt r a da a l ai n f o r má t i c aap r o f e s i o na l e sd ec u a l q ui e ro t r oc a mp o.L a bVI EW c o n s i g ue c omb i n ar s ec on t od ot i p od es of t wa r e yh ar d wa r e ,t a nt od elp r o pi of a br i c a nt et a r j e t a s de adqui s i c i óndedat os ,PAC,Vi s i ón,i ns t r umen t osyot r oHar d war e-c omodeo t r osf abr i c ant es .
%u principal característica es la facilidad de uso, v!lido para programadores profesionales como para personas con pocos conocimientos en programación pueden acer programas relativamente complejos, imposibles para ellos de acer con lenguajes tradicionales. 8ambi3n es muy r!pido acer programas con 0ab-=E y cualquier programador, por experimentado que sea, puede bene5ciarse de 3l. 0os programas en 0ab-ie& son llamados instrumentos virtuales G-=s7 +ara los amantes de lo complejo, con 0ab-=E pueden crearse programas de miles de -=s Gequivalente a millones de p!ginas de código texto7 para aplicaciones complejas, programas de automati$aciones de decenas de miles de puntos de entradas#salidas, proyectos para combinar nuevos -=s con -=s ya creados, etc. =ncluso existen buenas pr!cticas de programación para optimi$ar el rendimiento y la calidad de la programación. El lab-ie& S.D introduce un nuevo tipo de sub-= llamado -=s Expreso GExpress -=%7. Estos son -=s interactivos que tienen una con5guración de caja de di!logo que permite al usuario personali$ar la funcionalidad del -= Expreso. El -=s est!ndard son -=s modulares y personali$ables mediante cableado y funciones que son elementos fundamentales de operación de 0ab-ie&. +resenta facilidades para el manejo de' =nterfaces de comunicaciones' • • • • •
+uerto serie +uerto paralelo H+= +M= -M=
• • • •
8(+#=+, U*+, *ata%ocLet =rda luetoot U%
(apacidad de interactuar con otros lenguajes y aplicaciones' • • • • • • • • • • • • •
*00' librerías de funciones .CE8 ActiveM @ultisim @atlab#%imulinL Auto(A*, %olidorLs, etc erramientas gr!5cas y textuales para el procesado digital de se1ales. -isuali$ación y manejo de gr!5cas con datos din!micos. Adquisición y tratamiento de im!genes. (ontrol de movimiento Gcombinado incluso con todo lo anterior7. 8iempo ;eal estrictamente ablando. +rogramación de ?+HAs para control o validación. %incroni$ación entre dispositivos.
Arduino 0enguaje de programación de Arduino, estructura de un programa +ara programar un Arduino, el lenguaje est!ndar es (>>, aunque es posible programarlo en otros lenguajes. Co es un (>> puro sino que es una adaptación que proveniente de avrJlibc que provee de una librería de ( de alta calidad para usar con H(( en los microcontroladores A-; de Atmel y mucas funciones especí5cas para los @(U A-; de Atmel. avrJbinutils, avrJgcc y avrJlibc son las erramientas necesarias para programar los microcontroladores A-; de Atmel. 1.4 Como se catalogan y califcan los lenguajes de programación nuevo
Un lenguaje de programación es un lenguaje inventado para controlar una m!quina, Gnormalmente, un ordenador7. ay mucísimos, de toda clase de tipos y características, inventados para facilitar el abordaje de distintos problemas, el mantenimiento del soft&are, su reutili$ación, mejorar la productividad, etc. 0os lenguajes de programación se pueden clasi5car seg2n varios criterios. e encontrado doce en total' Civel de abstracción, propósito, evolución istórica, manera de ejecutarse, manera de abordar la tarea a reali$ar, paradigma de programación, lugar de ejecución, concurrencia, interactividad, reali$ación visual, determinismo y productividad.
ay que tener en cuenta tambi3n, que en la pr!ctica, la mayoría de lenguajes no pueden ser puramente clasi5cados en una categoría, pues surgen incorporando ideas de otros lenguajes y de otras 5losofías de programación, pero no importa al establecer las clasi5caciones, pues el aut3ntico objetivo de las mismas es mostrar los rangos, las posibilidades y tipos de lenguajes que ay. 6. Civel de abstracción. %eg2n el nivel de abstracción, o sea, seg2n el grado de cercanía a la m!quina' 0enguajes de bajo nivel' 0a programación se reali$a teniendo muy en cuenta las características del procesador. Ejemplo' 0enguajes ensamblador. 0enguajes de nivel medio' +ermiten un mayor grado de abstracción pero al mismo tiempo mantienen algunas cualidades de los lenguajes de bajo nivel. Ejemplo' ( puede reali$ar operaciones lógicas y de despla$amiento con bits, tratar todos los tipos de datos como lo que son en realidad a bajo nivel Gn2meros7, etc. 0enguajes de alto nivel' @!s parecidos al lenguaje umano. @anejan conceptos, tipos de datos, etc., de una manera cercana al pensamiento umano ignorando Gabstray3ndose7 del funcionamiento de la m!quina. Ejemplos' /ava, ;uby. ay quien sólo considera lenguajes de bajo nivel y de alto nivel, Gen ese caso, ( es considerado de alto nivel7. 9. +ropósito. %eg2n el propósito, es decir, el tipo de problemas a tratar con ellos' 0enguajes de propósito general' Aptos para todo tipo de tareas' Ejemplo' (. 0enguajes de propósito especí5co' ecos para un objetivo muy concreto. Ejemplo' (sound Gpara crear 5ceros de audio7. 0enguajes de programación de sistemas' *ise1ados para reali$ar sistemas operativos o drivers. Ejemplo' (. 0enguajes de script' +ara reali$ar tareas varias de control y auxiliares. Antiguamente eran los llamados lenguajes de procesamiento por lotes Gbatc7 o /(0 G/ob (ontrol 0anguagesV7. %e subdividen en varias clases Gde sell, de
HU=, de programación &eb, etc.7. Ejemplos' bas Gsell7, m=;( script, /ava%cript Gprogramación &eb7. W. Evolución istórica. (on el paso del tiempo, se va incrementando el nivel de abstracción, pero en la pr!ctica, los de una generación no terminan de sustituir a los de la anterior' 0enguajes de primera generación G6H07' (ódigo m!quina. 0enguajes de segunda generación G9H07' 0enguajes ensamblador. 0enguajes de tercera generación GWH07' 0a mayoría de los lenguajes modernos, dise1ados para facilitar la programación a los umanos. Ejemplos' (, /ava. 0enguajes de cuarta generación GRH07' *ise1ados con un propósito concreto, o sea, para abordar un tipo concreto de problemas. Ejemplos' CA8U;A0, @atematica. 0enguajes de quinta generación GQH07' 0a intención es que el programador estable$ca el qu3 problema a de ser resuelto y las condiciones a reunir, y la m!quina lo resuelve. %e usan en inteligencia arti5cial. Ejemplo' +rolog. R. @anera de ejecutarse. %eg2n la manera de ejecutarse' 0enguajes compilados' Un programa traductor traduce el código del programa Gcódigo fuente7 en código m!quina Gcódigo objeto7. 4tro programa, el enla$ador, unir! los 5ceros de código objeto del programa principal con los de las librerías para producir el programa ejecutable. Ejemplo' (. 0enguajes interpretados' Un programa Gint3rprete7, ejecuta las instrucciones del programa de manera directa. Ejemplo' 0isp. 8ambi3n los ay mixtos, como /ava, que primero pasan por una fase de compilación en la que el código fuente se transforma en bytecodeV, y este bytecodeV puede ser ejecutado luego Ginterpretado7 en ordenadores con distintas arquitecturas Gprocesadores7 que tengan todos instalados la misma m!quina virtualV /ava. Q. @anera de abordar la tarea a reali$ar. %eg2n la manera de abordar la tarea a reali$ar, pueden ser'
0enguajes imperativos' =ndican cómo ay que acer la tarea, es decir, expresan los pasos a reali$ar. Ejemplo' (. 0enguajes declarativos' =ndican qu3 ay que acer. Ejemplos' 0isp, +rolog. 4tros ejemplos de lenguajes declarativos, pero que no son lenguajes de programación, son 8@0 Gpara describir p!ginas &eb7 o %I0 Gpara consultar bases de datos7. P. +aradigma de programación. El paradigma de programación es el estilo de programación empleado. Algunos lenguajes soportan varios paradigmas, y otros sólo uno. %e puede decir que istóricamente an ido apareciendo para facilitar la tarea de programar seg2n el tipo de problema a abordar, o para facilitar el mantenimiento del soft&are, o por otra cuestión similar, por lo que todos corresponden a lenguajes de alto nivel Go nivel medio7, estando los lenguajes ensambladores atadosV a la arquitectura de su procesador correspondiente. 0os principales son' 0enguajes de programación procedural' *ivide el problema en partes m!s peque1as, que ser!n reali$adas por subprogramas Gsubrutinas, funciones, procedimientos7, que se llaman unas a otras para ser ejecutadas. Ejemplos' (, +ascal. 0enguajes de programación orientada a objetos' (rean un sistema de clases y objetos siguiendo el ejemplo del mundo real, en el que unos objetos reali$an acciones y se comunican con otros objetos. Ejemplos' (>>, /ava. 0enguajes de programación funcional' 0a tarea se reali$a evaluando funciones, Gcomo en @atem!ticas7, de manera recursiva. Ejemplo' 0isp. 0enguajes de programación lógica' 0a tarea a reali$ar se expresa empleando lógica formal matem!tica. Expresa qu3 computar. Ejemplo' +rolog. ay mucos paradigmas de programación' +rogramación programación reexiva, programación orientada a procesos, etc.
gen3rica,
S. 0ugar de ejecución. En sistemas distribuidos, seg2n dónde se ejecute' 0enguajes de servidor' %e ejecutan en el servidor. Ejemplo' ++ es el m!s utili$ado en servidores &eb. 0enguajes de cliente' %e ejecutan en el cliente. Ejemplo' /ava%cript en navegadores &eb. X. (oncurrencia.
%eg2n admitan o no concurrencia de procesos, esto es, la ejecución simult!nea de varios procesos lan$ados por el programa' 0enguajes concurrentes. Ejemplo' Ada. 0enguajes no concurrentes. Ejemplo' (. O. =nteractividad. %eg2n la interactividad del programa con el usuario u otros programas' 0enguajes orientados a sucesos' El ujo del programa es controlado por la interacción con el usuario o por mensajes de otros programas#sistema operativo, como editores de texto, interfaces gr!5cos de usuario GHU=7 o Lernels. Ejemplo' -isualasic, lenguajes de programación declarativos. 0enguajes no orientados a sucesos' El ujo del programa no depende de sucesos exteriores, sino que se conoce de antemano, siendo los procesos batc el ejemplo m!s claro Gactuali$aciones de bases de datos, colas de impresión de documentos, etc.7. Ejemplos' 0enguajes de programación imperativos. 6D. ;eali$ación visual. %eg2n la reali$ación visual o no del programa' 0enguajes de programación visual' El programa se reali$a moviendo bloques de construcción de programas Gobjetos visuales7 en un interfa$ adecuado para ello. Co confundir con entornos de programación visual, como @icrosoft -isual %tudio y sus lenguajes de programación textuales Gcomo -isual ()7. Ejemplo' @indscript. 0enguajes de programación textual' El código del programa se reali$a escribi3ndolo. Ejemplos' (, /ava, 0isp. 66. *eterminismo. %eg2n se pueda predecir o no el siguiente estado del programa a partir del estado actual' 0enguajes deterministas. Ejemplos' 8odos los anteriores.
0enguajes probabilísticos o no deterministas' %irven para explorar grandes espacios de b2squeda, Gcomo gram!ticas7, y en la investigación teórica de ipercomputación. Ejemplo' mutt Ggenerador de texto aleatorio7. 69. +roductividad. %eg2n se caractericen por tener virtudes 2tiles o productivas, u oscuras y enrevesadas' 0enguajes 2tiles o productivos' %us virtudes en cuanto a e5ciencia, sencille$, claridad, productividad, etc., motiva que sean utili$ados en empresas, administraciones p2blicas y#o en la ense1an$a. Ejemplos' (ualquier lenguaje de uso abitual G(, /ava, (>>, 0isp, +yton, ;uby, Y7. 0enguajes esot3ricos o exóticos' =nventados con la intención de ser los m!s raros, oscuros, difíciles, simples y#o retorcidos de los lenguajes, para diversión y entretenimiento de friLis programadores. A veces exploran nuevas ideas en programación. Ejemplo' rainfucL. Etiquetas' clasi5cación, lenguaje de programación.
Fuentes de inormación.
ttps'##aprendiendoarduino.&ordpress.com#9D6Q#DW#9P#lenguajeJdeJ programacionJdeJarduinoJestructuraJdeJunJprograma# ttps'##ciclodevidasoft&are.&iLispaces.com#(lasi5cacion>*e>0os>0enguajes> *e>+rogramacion ttps'##geeLyteory.com#queJlenguajeJdeJprogramacionJdeberiasJaprender#