La programación dentro de la ingeniería industrial


Programación

Víctor Manuel Trujillo Martínez

ID:00305802


Sabemos que actualmente el área informática y la computación ha tenido un auge importante dentro de la sociedad. La tecnología ha avanzado de manera considerable, lo cual, ha generado muchos beneficios para la sociedad. Los lenguajes de programación cada vez son más orientados a ser flexibles y ligeros dentro de la solución de un programa. Para programar un sistema, los conceptos de análisis de datos intervienen de manera directa.

Hoy en día la mayoría de las herramientas de la ingeniería industrial son computarizadas. como el resto de los ingenieros, el Ingeniero Industrial lleva programación de computadoras. la especialidad de la ingeniería industrial lleva control y simulación que amplían el papel de los principios de la informática dentro de la ingeniería industrial. Además, hoy en día la mayoría de las herramientas de la ingeniería industrial están computarizadas. Con el reconocimiento de que el análisis y el diseño asistidos por computadora, a los sistemas de producción se les creo un nuevo camino por aprovechar.



Los Lenguajes de Programación
Lenguajes de programación hay en gran cantidad, algunos han evolucionado a lo largo del tiempo y siguen vigentes en el transcurso de muchos años, mientras que otros han sido operativos durante un periodo mas o menos largo y actualmente no se usan. Los lenguajes de programación utilizan juegos de caracteres "alfabeto" para comunicarse con las computadoras. 

Al igual que los lenguajes humanos, tales como el inglés o el español, los lenguajes de programación poseen una estructura (gramática o sintaxis) y un significado (semántica). Los lenguajes de computadoras tienen menos combinaciones aceptables que los lenguajes naturales, sin embargo, estas combinaciones deben ser utilizadas correctamente; ello contrasta con los lenguajes naturales que se pueden utilizar aunque no sigan reglas gramaticales e incluso aunque no sean comprendidos.

Finalmente, un lenguaje de programación lo definiremos, como un conjunto de reglas, símbolos y palabras especiales que permiten construir un programa.

Existen diversos lenguajes y paradigmas de programación que se han diseñado para facilitar la tarea de la programación en diferentes ámbitos. Por ejemplo, la programación orientada a objetos es un paradigma dirigido al mejoramiento en la calidad del software por medio de la observación de aspectos tales como la corrección, robustez, expansibilidad, compatibilidad y sobre todo la reusabilidad del software. La programación lógica, por su parte, es un paradigma orientado a la expresión de los problemas en términos lógicos para su posterior solución por métodos de inferencia y otras técnicas lógicas.

En la práctica, cada paradigma de programación es implementado a través de diversos lenguajes. Sólo como un ejemplo, la programación orientada a objetos encuentra su recipiente en lenguajes tales como Java, C++, Eiffel, Objective C, el paquete CLOS de Common Lisp, etc.


Seis razones primordiales para el estudio de los lenguajes de programación:

  •  Mejorar la habilidad para desarrollar algoritmos eficacesMuchos lenguajes tienen ciertas características que , usadas adecuadamente , benefician al programador pero cuando se usan en forma inadecuada pueden desperdiciar grandes cantidades de tiempo de computadora o de conducir al programador a errores lógicos que hacen perder mucho tiempo , además, el costo de la reclusión varía según la implementación del lenguaje.
  •  Mejorar el uso del lenguaje de programación disponible. A través de entendimiento de cómo se implementan las características del lenguaje que uno usa, se mejora grandemente la habilidad para escribir programas más eficientes.
  • Enriquece su vocabulario de construcciones útiles de programaciónCon frecuencia se nota que los lenguajes sirven tanto para una ayuda como para pensar como para construir, los lenguajes sirven también para estructurar lo que uno piensa, hasta el punto que es difícil pensar en alguna forma que no permita la expresión directa con palabras. El entendimiento de las técnicas de implementación es particularmente, por que para emplear un constructor mientras se programa en un lenguaje que no proporciona directamente el programador debe dar su propia implementación del nuevo constructor en términos de los elementos primitivos ofrecidos realmente por el lenguaje.
  • Permite una mejor selección de lenguaje de programaciónCuando la situación lo amerita, el conocimiento de una variedad de lenguajes permite la selección de lenguaje correcto para un proyecto particular por tanto, reduce enormemente el esfuerzo de codificación requerido.
  • Hace más fácil el aprendizaje de un nuevo lenguaje. Un lingüista, a través de un conocimiento de las estructuras en que se basan los lenguajes naturaleza, puede aprender un lenguaje extranjero más rápido y fácil que el esforzado principiante que entiende poco de su estructura lengua natal
  • Facilita el diseño de un nuevo lenguaje. Pocos programadores piensan en sí mismos como diseñadores; es más ningún programa tiene una interfaces del usuario que es, en realidad, una forma de lenguaje. La interfase del usuario consiste en unos formatos y comandos que son proporcionados por el para comunicarse con el programa. El diseñador de la interfase del usuario de un programa tal como un editor de textos, un sistema, operativo o un paquete de gráficas debe estar familiarizado con mucho de los resultados que están presentes en el diseño de un lenguaje de programación de propósitos generales.

La evolución de los lenguajes de programación ha estado guiada por la evolución de:
  • Las computadoras y sus sistemas operativos.
  • Las aplicaciones.
  • Los métodos de programación.
  • Los fundamento teóricos.
  • La importancia dada a la estandarización.
Entornos de programación

Un entorno de programación es un programa o conjunto de programas que engloban todas las tareas necesarias para el desarrollo de un programa o aplicación. Estas tareas son básicamente las siguientes:

  • Edición del programa.
  • Compilación y enlazado.
  • Ejecución.
  • Depuración.
Hay quien además incluye la creación de documentación complementaria que facilita el mantenimiento del programa dentro de estas funciones.

Este tipo de entornos incorporan numerosas herramientas, utilidades, aplicaciones ya desarrolladas, ejemplos, tutoriales, etc. Todas ellas encaminadas a faciltiar y mejorar el desarrollo.

Editores

El primer elemento necesario para el desarrollo de un programa es un editor de texto. Un editor es un programa que nos permite escribir (editar) las instrucciones del programa y posteriormente guardar el programa en un fichero en un soporte de almacenamiento. Cualquier editor de texto se puede utilizar para editar programas con la única precaución de que a la hora de guardar, salvar o almacenar el programa sólo se almacene el texto sin opciones de formato: negrita, estilos, itálica, etc.

Lo normal es utilizar un editor especialmente preparado para la programación. Estos tienen facilidades para la corrección de errores, destacan las palabras del lenguaje en colores, y en general facilitan la labor del programador.

Procesadores del lenguaje: traductores, compiladores e intérpretes

Una vez editado nuestro programa es necesario que este sea procesado y tranformado en ódenes que puedan ser ejecutadas por el ordenador. Estas órdenes por tanto deben estar en el único lenguaje que la máquina entiende: el código máquina. Para ello son necesarios los proceadores de lenguaje cuyo concepto es muy amplio. Dentro de los procesadores de lenguaje destacan los traductores, los compiladores y los intérpretes.

Un compilador es un programa cuyo cometido es realizar la conversión de un programa escrito en un lenguaje de programación a su correspondiente equivalente en lenguaje máquina. El resultado que devuelve un compilador es un programa que ya puede ser ejecutado por el ordenador destino sin la necesidad de que el compilador esté presente. Por ejemplo, el lenguaje Pascal o el lenguaje C son lenguajes de programación que necesitan ser compilados. Cuando la conversión se realiza entre el lenguaje ensamblador (Assembly) y el código máquina, el compilador recibe el nombre específico de Ensamblador (Assembler).

Un intéprete es un programa que convierte línea por línea el programa escrito en un lenguaje de programación y que a medida que realiza la conversión ejecuta las instrucciones . Evidentemente el intérprete no devuelve nada ya que la ejecución se realiza de forma simultánea. Por este motivo, el intérprete debe estar presente durante la ejecución. Lenguajes de programación que tradicionalmente son interpretados son el LISP y el BASIC.

Un traductor es el nombre que reciben aquellos procesadores de lenguaje que convierten programas de unos lenguajes a otros pero no generan código máquina. Por ejemplo hay traductores de Pascal a C y viceversa.

Hay otros lenguajes de programación que combinan ambas estrategias como por ejemplo sucede con el lenguaje de programación Java . Para este lenguaje existen traductores que generan un programa en un código denominado intermedio que luego será ejecutado a través de un intérpre que recibe en este caso el nombre de máquina virtual Java.

Enlazadores

Por simplificación y para facilitar la comprensión de los conceptos anteriores se ha señalado que los compiladores y los ensambladores (caso particular de compilador) generan código máquina que puede ser ejecutado por el ordenador. Sin embargo esto no es totalmente cierto ya que hay una etapa de enlazado que debe ser realizada por otro programa denominado enlazador (linker). Lo habitual es que durante la escritura de un programa sea necesario utilizar otros subprogramas en forma de bibliotecas de funciones o bien que el propio programa esté formado realmente por varios programas almacenados en diferentes ficheos. Esta situación hace que durante la compilación de cada módulo no se conozca con exactitud la ubicación de las instrucciones del resto de programas o bibliotecas de funciones. El papel del enlazador es unir en un único fichero ejecutable el resultado de todas las compilaciones así como las bibiotecas estáticas de funciones. Es frecuente que el enlazado sea un paso más de la compilación y que se ejecute inmediatamente tras la compilación de todos los ficheros.

Es habitual denominar a cada uno de los ficheros que participan en el desarrollo de un programa con nombres genéricos que identifican en qué fase se encuentran. Por ejemplo, las instrucciones que escribe directamente el programador y que forman el programa en el lenguaje de programación escogido como ficheros fuente (source file). El resultado de la compilación de estos programas se denomina fichero objeto (object file) y por el último el resultado del enlazado fichero ejecutable (executable file). Es este último el único que puede entender un ordenador sin la presencia del compilador. En el caso de los lenguajes interpretados el fichero fuente es directamente interpretado y ejecutado por el interprete.

Depuradores

Una vez editado y compilado el programa es necesario ejecutarlo (run en inglés), pero es habitual que durante el desarrollo de una aplicación que generen ficheros ejecutables que aunque sean correctos desde un punto de vista sintáctico no realicen lo que realmente se espera de ellos por lo que se consideran que no funcionan correctamente. Los depuradores (debuggers) son capaces de ejecutar el programa paso a paso incluyendo además un conjunto de facilidades que permiten observar el valor de las variables y estructuras de datos permitiendo así una mejor localización de errores no evidentes.

Paquetes especializados en lenguajes destacando su uso y programación 

Actualmente tenemos distintos lenguajes con los que podemos trabajar dependiendo de nuestros objetivo, a continuación hablaremos de algunos de ellos:


  • Java
El lenguaje de programación más popular del mundo, de acuerdo a TIOBE, es Java, creado por la empresa Sun Microsystems de Oracle Corporation en 1995. Se trata de un lenguaje multiplataforma, cuyos desarrollos pueden ejecutarse en páginas web, dispositivos móviles y computadoras.

La filosofía de Java es WORA, acrónimo en inglés para “escribe una vez, ejecuta donde sea”. Tiene influencias de Pascal y C++, aunque Java no tiene tantas utilidades de bajo nivel. Java es un lenguaje de programación orientado a objetos. 


  • C
Imagen relacionada
Desarollado en 1972, C es el segundo lenguaje de programación más utilizado del mundo. Se ha mantenido vigente a pesar de los años por la eficacia de su código y porque es el más popular para crear software de sistemas y aplicaciones.

C trabaja bajo un paradigma estructurado y es considerado de medio nivel, pues aunque tiene estructuras de alto nivel también cuenta con muchas características de bajo nivel para trabajar directamente sobre el hardware en tareas muy específicas, por lo  que se usa bastante para sistemas embebidos.



  • C++

Imagen relacionada
Si C no es un lenguaje de programación orientado a objetos, C++ sí. Desarrollado en 1983 para extender la capacidad de C, este lenguaje se considera híbrido al permitir la programación genérica, la estructurada y la orientada a objetos.
C++ pasó del 4to al 3er lugar en el ranking de TIOBE comparado con los datos de 2014. Al igual que C, es un lenguaje utilizado para aplicaciones móviles, de escritorio y para sistemas embebidos.


  • Python

Apareció en 1991 y se ha convertido en uno de los favoritos por su paradigma multiplataforma, que lo mismo funciona para programar con orientación a objetos, programación imperativa y también funcional. Lenguaje interpretado, se utiliza para crear aplicaciones de escritorio y móviles.

Python tiene una licencia de código abierto y tiene toda una filosofía, que dice entre sus postulados cosas como “simple es mejor que complejo”, “lo práctico gana a lo puro”, o “ahora es mejor que nunca”.


Así mismo el desarrollo actual de las bases de datos no relacionales (Big data) ha ayudado a la creación de muchos manejadores para este tipo de información para poder trabajarla, como es el caso de MongoBD.

MongoDB es una base de datos distribuida, basada en documentos y de uso general que ha sido diseñada para desarrolladores de aplicaciones modernas y para la era de la nube. Ninguna otra ofrece un nivel de productividad de uso tan alto.

Es una base de datos documental, lo que significa que almacena datos en forma de documentos tipo JSON. Creemos que esta es la forma más natural de concebir los datos; frente al tradicional modelo de filas y columnas, esta es mucho más expresiva y potente.

Eclipse

Eclipse es uno de los entornos más conocidos y utilizados por los programadores, ya que se trata de un entorno de programación de código abierto y multiplataforma. Está soportado por una comunidad de usuarios lo que hace que tenga muchos plugins de modo que hacen que nos sirva para casi cualquier lenguaje, en este aspecto es de lo mejores. Sirve para Java, C++, PHP, Perl y un largo etcétera. También nos permite realizar aplicaciones de escritorio y aplicaciones web por lo que nos brinda una gran versatilidad.

Además está en constante evolución y hay muchos tutoriales por la red que nos guían en su instalación y utilización.

NetBeans

Netbeans también es un entorno de programación muy utilizado por los programadores. Se trata de otro entorno multilenguaje y multiplataforma en el cual podemos desarrollar software de calidad. Con él podemos crear aplicaciones web y de escritorio, además de contar con plugins para trabajar en Android.

El lenguaje que mejor soporta es Java, ya que fue creado por Oracle y su creación fue para ser el IDE de Java. Aunque como hemos dicho, es multilenguaje debido a que soporta JavaScript, HTML5, PHP, C/C++ etc.

Visual Studio

Visual Studio fue diseñado por Microsoft y es uno de los mejores entornos de programación que existe siempre y cuando utilices sus lenguajes. Antiguamente tenían una versión de pago que incluía todos los lenguajes, y versiones express que eran gratuitas para un lenguaje en concreto.

Ahora como Microsoft quiere pasarse al software libre, ha creado también un Visual Studio Comunity que es muy parecido al Visual Studio de pago, sólo que este está soportado por la comunidad. Este entorno nos permite hacer aplicaciones web y de escritorio y ayuda mucho al programador. El inconveniente que tiene es que solo es válido para lenguajes de Microsoft.

JetBrain

JetBrain no es un entorno concreto, es una compañía que crea entornos de programación, es libre y crean entornos para multitud de lenguajes como son Java, Ruby, Python, PHP, SQL, Objective-C, C++ y JavaScript. También están desarrollando IDE’s para C# y GO

Estamos utilizando un IDE de esta compañía en nuestro curso de Python que es el Pycharm, y ha facilitado mucho su programación por tratarse una herramienta muy completa. Lo podéis encontrar en el siguiente enlace.

QtCreator

QtCreator es un entorno de programación para C++ usan el framework de QT, es un entorno amigable. También es un entorno multiplataforma programado en C++, JavaScript y QML. Este IDE está diseñado específicamente para utilizar el framework de QT, que por otra parte es un muy interesante ya que nos permite hacer aplicaciones multiplataforma de una manera sencilla y rápida.

CodeLite

CodeLite es un IDE de código abierto y libre bajo la licencia GNU (General Public License) y para diversos sistemas operativos, el entorno de desarrollo integrado usa wxWidgets para su interfaz gráfica, ya que al cumplir con la filosofía de código abierto usa herramientas completamente libres. A día de hoy soporta los lenguajes C/C++, PHP y Node.js

Aptana Studio

Aptana Studio es bastante simple en comparación con otras IDEs. Puede depurar sus JS usando Firefox + Firebug. También se puede obtener una vista previa en el navegador integrado (soporta IE, Firefox y Safari). Se puede usar Aptana como un plugin con Eclipse o puede descargar la versión autónoma de Aptana Studio.

javascript_ide_1

Cloud 9

Un entorno en la nube, soporta muchos lenguajes y entre ellos JavaScript. Hay una cuenta gratuita pero puedes optar a otras con diferentes costes.

javascript_ide_4

Spket IDE

Es otro ejemplo de IDE que funciona para el desarrollo del lenguaje javascript y XML.

javascript_ide_5

API for JavaScript Sandbox

Por supuesto no es una IDE como tal pero es está bien comentarlo sobre todo para las personas que empiezan a jugar con el código y familiarizándose con los ejemplos de código fuente que aporta ESRI en la web de la API. Te permite modificar dicho código de ejemplo y ver qué efecto tiene sobre el mapa.

javascript_ide_6

Ya conoces un poco más sobre este campo de la programación, ahora elige cual te interesa más y a teclear.


Bibliografia:

Wordpress (2010). Manual de HTML CSS. Recuperado de https://aapp.files.wordpress.com/2010/07/manual-de-html-css.pdf

Bonet Esteban, Vicente (s.f.). Lenguaje C.Recuperado de http://informatica.uv.es/estguia/ATD/apuntes/laboratorio/Lenguaje-C.pdf

UNID. (s.f.). Sesion 4. Recuperado de  https://licenciatura.unid.edu.mx/mod/book/view.php?id=2890183

Graña, R.. (2015). Los 10 lenguajes de programación más usados del mundo. Como Funciona Que Recuperado de https://comofuncionaque.com/lenguajes-de-programacion-mas-usados/

MongoDB, Inc.. (s.f.). La base de datos líder para aplicaciones modernas. Recuperado de https://www.mongodb.com/es

UNAM. (s.f.). fcasua. . UNAM Recuperado de http://fcasua.contad.unam.mx/apuntes/interiores/docs/98/4/informatica_4.pdf











Comentarios