929 resultados para Lenguajes de programación
Resumo:
Se lleva a cabo un análisis de los lenguajes de programación desde el punto de vista de sus relaciones con el software matemático. Para ello se comienza con una definición bastante flexible de software matemático, para continuar con un análisis metodológico de los lenguajes de programación, estudiando los paradigmas imperativo, funcional, la programación lógica y la orientación a objetos. Por último se realiza un estudio histórico de los lenguajes de programación, así como de los lenguajes de programación más adecuados para la implementación de algoritmos matemáticos.
Resumo:
Tesis (Maestro en Ciencias de la Administración con Especialidad en Sistemas) UANL, 1997.
Resumo:
Tesis (Maestro en Ciencias de la Administración con Especialidad en Sistemas) UANL, 2000.
Resumo:
Resumen del autor
Resumo:
Incluye Bibliografía
Resumo:
En este proyecto se ha estudiado el abanico de posibilidades que las plataformas web y móviles ofrecen para aprender lenguajes de programación compilados. A continuación, se ha realizado el diseño y la implementación de una plataforma para el aprendizaje de lenguajes de programación desde dispositivos móviles, con posibilidad de compilación remota desde la aplicación desarrollada, analizando el proceso y las elecciones de desarrollo tomadas. Así, se ha desarrollado una app mediante la plataforma de desarrollo Cordova, que puede ser distribuida para todas las plataformas móviles que esta soporta, incluyendo las más populares: iOS y Android. Para la parte servidora se ha utilizado un servidor Apache (PHP) y el sistema NoSQL MongoDB para la base de datos. Para mayor facilidad en la gestión del contenido de la app, se ha desarrollado en paralelo un gestor web de la base de datos, el cual permite añadir, editar y eliminar contenido de la misma a través de una interfaz agradable y funcional. ABSTRACT. In this project I have studied the range of possibilities that web and mobile platforms offer to learn compiled programming languages. Next, I have designed and implemented a platform for learning programming languages from mobile devices, giving the possibility of remote compilation within the developed application. In this terms, I have developed an app with the Cordova development platform, which can be distributed for all the mobile platforms Cordova supports, including the most popular ones: iOS and Android. For the server part, I have used an Apache (PHP) server and the NoSQL database system MongoDB. In order to offer a more usable system and a better database management, I have also developed a web manager for the database, from which database content can be added, edited and removed, through a clear and functional interface.
Resumo:
En estos últimos años la curiosidad por el sector informático, y más específicamente en la programación, ha producido una gran demanda por los interesados en estas áreas. Esto ha provocado que el número de tutoriales y entrenadores haya aumentado de una forma considerable. Debido a esta gran demanda, ha surgido la idea de desarrollar una herramienta con la que poder gestionar tutoriales de programación con una aplicación de escritorio. La finalidad de este proyecto es poder crear tutoriales interactivos que permitan a los alumnos adquirir conocimientos de una forma sencilla y atractiva. Esto se consigue mediante la posibilidad de enriquecer el formato del texto al mostrar las explicaciones o los enunciados de las preguntas y añadir imágenes. Para evitar que sea un tutorial de sólo lectura, que resulta poco atractivo y no permite al estudiante evaluar los conocimientos adquiridos, con esta herramienta se podrán intercalar preguntas entre la teoría para enganchar más al alumno, y conseguir que el aprendizaje sea muy incremental, para no tener una cantidad abrumadora de información en poco tiempo. Con estos tutoriales el alumno podrá comprobar los conocimientos adquiridos gracias al seguimiento continuo. El estudiante, según lea la teoría y realice los ejercicios con grado de dificultad creciente, tendrá más capacidad para resolver ejercicios nuevos y prepararse para continuar el tutorial. El resultado de este proyecto ha sido una herramienta multiplataforma y con licencia abierta MIT, que puede ser descargada de https://github.com/Kherdu/TFG.
Resumo:
El presente proyecto se enmarca en el área de métodos formales para computación; el objetivo de los métodos formales es asegurar, a través de herramientas lógicas y matemáticas, que sistemas computacionales satisfacen ciertas propiedades. El campo de semántica de lenguajes de programación trata justamente de construir modelos matemáticos que den cuenta de las diferentes características de cada lenguaje (estado mutable, mecanismos de paso de parámetros, órdenes de ejecución, etc.); permitiendo razonar de una manera abstracta, en vez de lidiar con las peculiaridades de implementaciones o las vaguezas de descripciones informales. Como las pruebas formales de corrección son demasiado intrincadas, es muy conveniente realizar estos desarrollos teóricos con la ayuda de asistentes de prueba. Este proceso de formalizar y corrobar aspectos semánticos a través de un asistente se denomina mecanización de semántica. Este proyecto – articulado en tres líneas: semántica de teoría de tipos, implementación de un lenguaje con tipos dependientes y semántica de lenguajes imperativos con alto orden - se propone realizar avances en el estudio semántico de lenguajes de programación, mecanizar dichos resultados, e implementar un lenguaje con tipos dependientes con la intención de que se convierta, en un mediano plazo, en un asistente de pruebas. En la línea de semántica de teoría de tipos los objetivos son: (a) extender el método de normalización por evaluación para construcciones no contempladas aun en la literatura, (b) probar la adecuación de la implementación en Haskell de dicho método de normalización, y (c) construir nuevos modelos categóricos de teoría de tipos. El objetivo de la segunda línea es el diseño e implementación de un lenguaje con tipos dependientes con la intención de que el mismo se convierta en un asistente de pruebas. Una novedad de esta implementación es que el algoritmo de chequeo de tipos es correcto y completo respecto al sistema formal, gracias a resultados ya obtenidos; además la implementación en Haskell del algoritmo de normalización (fundamental para el type-checking) también tendrá su prueba de corrección. El foco de la tercera línea está en el estudio de lenguajes de programación que combinan aspectos imperativos (estado mutable) con características de lenguajes funcionales (procedimientos y funciones). Por un lado se avanzará en la mecanización de pruebas de corrección de compiladores para lenguajes Algollike. El segundo aspecto de esta línea será la definición de semánticas operacional y denotacional del lenguaje de programación Lua y la posterior caracterización del mismo a partir de ellas. Para lograr dichos objetivos hemos dividido las tareas en actividades con metas graduales y que constituyen en sí mismas aportes al estado del arte de cada una de las líneas. La importancia académica de este proyecto radica en los avances teóricos que se propone en la línea de semántica de teoría de tipos, en las contribución para la construcción de pruebas mecanizadas de corrección de compiladores, en el aporte que constituye la definición de una semántica formal para el lenguaje Lua, y en el desarrollo de un lenguaje con tipos dependientes cuyos algoritmos más importantes están respaldados por pruebas de corrección. Además, a nivel local, este proyecto permitirá incorporar cuatro integrantes al grupo de “Semántica de la programación”.
Resumo:
Actualmente las mayoría de sistemas de automatización industrial utilizan los Autómatas Programables (PLC - Programmable Logic Controller) como sistemas de control y el diseño de dicho sistema se realiza mediante el lenguaje de modelado Grafcet. SFCEdit es un editor de Grafcet que permite el diseño de estos sistemas de control y la exportación de los mismos en un formato XML. Resumen Por otra parte tenemos la norma IEC 61131-3 que busca estandarizar los lenguajes de programación de los PLC de esta manera no se tendría que usar un lenguaje distinto por cada fabricante, y la organización PLCOpen rigiéndose por la norma ha creado un formato XML para cada lenguaje, en los cuales se basa el traductor. Resumen Habitualmente el paso del diseño a la programación se realiza de forma manual. La automatización de este proceso es el objetivo general del proyecto realizado. En esté se ha desarrollado una herramienta que permite realizar la traducción del diseño gráfico al estándar IEC 61131-3 considerando las particularidades de algunos fabricantes de PLCs como Beckhoff (TwinCAT) y TSX Micro (PL7Pro). Además la herramienta realiza la traducción al formato XML de PLCOpen. Resumen El traductor funciona recibiendo un fichero XML (exportado de SFCEdit) procesa su información y genera los ficheros en función de la compatibilidad que el usuario seleccione.
Resumo:
Tesis (Maestría en Ciencias de la Administración, con especialidad en Sistemas) U.A.N.L.
Resumo:
Tesis (Maestría en Ciencias de la Administración con Especialidad en Sistemas) U.A.N.L.
Resumo:
Tesis ( Maestro en Ciencias de la Ingeniería de Manufactura con Especialidad en Automatización) U.A.N.L.
Resumo:
Confeccionar una herramienta de programación sencilla, denominada Tutor, para llenar un vacío existente entre los lenguajes para ordenadores orientados al mundo educativo. Se parte de la premisa de que el ordenador puede tener unos ámbitos curriculares que potenciar altamente y que además existen unas limitaciones en cuanto a su uso, derivadas del proceso curricular. Uso del ordenador en la enseñanza. Inicialmente se realiza una introducción al tema de la infomática en el sistema educativo y se analiza la enseñanza asisteda por ordenador: sus bases y aspectos didácticos, su relación con los lenguajes de programación y su historia y evolución. A continuación se presenta el lenguaje de programación, Tutor: configuración del sistema, instrucciones y sintaxis, programas, recomendaciones, etc. Por último, se proporciona el listado del lenguaje Tutor en formato ASCII. Revisión documental: revistas, actas, material informático, etc. Análisis de contenido. La potencialidad del ordenador en educación es enorme, aunque la realidad nos muestra su poca utilización, en la mayoría de escuelas donde hay equipos, éstos están reservados para la administración o para las clases de informática. Falta: un criterio planificador estable, una adecuada preparación del profesorado, mayor coordinación entre escuelas, gobierno y empresas de infomática, un currículum adecuado, software más apropiado y accesible. La confección de materiales para la enseñanza asistida por ordenador debe prepararse minuciosamente. Cast es un lenguaje de autor interactivo y recursivo, al permitir el acceso a otros lenguajes Pascal, BASIC, etc. Está basado en el lenguaje de autor Pilot. La simplicidad y flexibilidad de este lenguaje permite que el profesor pueda realizar cambios en un programa cuando lo desee. Cast puede ser utilizado para enseñar matemáticas, física y química, etc. Tutor es un lenguaje de autor en la línea de Cast. Ha sido desarrollado bajo un sistema operativo CP-M. Está basado en mnemotécnicos castellanos de más brevedad cuanto más uso, y viceversa. El lenguaje Tutor, al poseer unas instrucciones sencillas de entender y utilizar, y algunas de ellas muy potentes, permite la creación rápida de programas mediante el uso de un editor de textos. Las limitaciones de este lenguaje: escasa capacidad para efectuar operaciones o cálculos matemáticos, almacenamiento limitado, etc., se ven superadas en gran parte por la posibilidad de acceso desde Tutor a otros lenguajes con alta capacidad numérica y con medios externos como disquetes, cintas, etc.
Resumo:
Programa de doctorado: Ingeniería de Telecomunicación Avanzada
Resumo:
Los lenguajes de programación son el idioma que los programadores usamos para comunicar a los computadores qué queremos que hagan. Desde el lenguaje ensamblador, que traduce una a una las instrucciones que interpreta un computador hasta lenguajes de alto nivel, se ha buscado desarrollar lenguajes más cercanos a la forma de pensar y expresarse de los humanos. Los lenguajes de programación lógicos como Prolog utilizan a su vez el lenguaje de la lógica de 1er orden de modo que el programador puede expresar las premisas del problema que se quiere resolver sin preocuparse del cómo se va a resolver dicho problema. La resolución del problema se equipara a encontrar una deducción del objetivo a alcanzar a partir de las premisas y equivale a lo que entendemos por la ejecución de un programa. Ciao es una implementación de Prolog (http://www.ciao-lang.org) y utiliza el método de resolución SLD, que realiza el recorrido de los árboles de decisión en profundidad(depth-first) lo que puede derivar en la ejecución de una rama de busqueda infinita (en un bucle infinito) sin llegar a dar respuestas. Ciao, al ser un sistema modular, permite la utilización de extensiones para implementar estrategias de resolución alternativas como la tabulación (OLDT). La tabulación es un método alternativo que se basa en memorizar las llamadas realizadas y sus respuestas para no repetir llamadas y poder usar las respuestas sin recomputar las llamadas. Algunos programas que con SLD entran en un bucle infinito, gracias a la tabulación dán todas las respuestas y termina. El modulo tabling es una implementación de tabulación mediante el algoritmo CHAT. Esta implementación es una versión beta que no tiene implementado un manejador de memoria. Entendemos que la gestión de memoria en el módulo de tabling tiene gran importancia, dado que la resolución con tabulación permite reducir el tiempo de computación (al no repetir llamadas), aumentando los requerimientos de memoria (para guardar las llamadas y las respuestas). Por lo tanto, el objetivo de este trabajo es implementar un mecanismo de gestión de la memoria en Ciao con el módulo tabling cargado. Para ello se ha realizado la implementación de: Un mecanismo de captura de errores que: detecta cuando el computador se queda sin memoria y activa la reinicialización del sitema. Un procedimiento que ajusta los punteros del modulo de tabling que apuntan a la WAM tras un proceso de realojo de algunas de las áreas de memoria de la WAM. Un gestor de memoria del modulo de tabling que detecta c realizar una ampliación de las áreas de memoria del modulo de tabling, realiza la solicitud de más memoria y realiza el ajuste de los punteros. Para ayudar al lector no familiarizado con este tema, describimos los datos que Ciao y el módulo de tabling alojan en las áreas de memoria dinámicas que queremos gestionar. Los casos de pruebas desarrollados para evaluar la implementación del gestor de memoria, ponen de manifiesto que: Disponer de un gestor de memoria dinámica permite la ejecución de programas en un mayor número de casos. La política de gestión de memoria incide en la velocidad de ejecución de los programas. ---ABSTRACT---Programming languages are the language that programmers use in order to communicate to computers what we want them to do. Starting from the assembly language, which translates one by one the instructions to the computer, and arriving to highly complex languages, programmers have tried to develop programming languages that resemble more closely the way of thinking and communicating of human beings. Logical programming languages, such as Prolog, use the language of logic of the first order so that programmers can express the premise of the problem that they want to solve without having to solve the problem itself. The solution to the problem is equal to finding a deduction of the objective to reach starting from the premises and corresponds to what is usually meant as the execution of a program. Ciao is an implementation of Prolog (http://www.ciao-lang.org) and uses the method of resolution SLD that carries out the path of the decision trees in depth (depth-frist). This can cause the execution of an infinite searching branch (an infinite loop) without getting to an answer. Since Ciao is a modular system, it allows the use of extensions to implement alternative resolution strategies, such as tabulation (OLDT). Tabulation is an alternative method that is based on the memorization of executions and their answers, in order to avoid the repetition of executions and to be able to use the answers without reexecutions. Some programs that get into an infinite loop with SLD are able to give all the answers and to finish thanks to tabulation. The tabling package is an implementation of tabulation through the algorithm CHAT. This implementation is a beta version which does not present a memory handler. The management of memory in the tabling package is highly important, since the solution with tabulation allows to reduce the system time (because it does not repeat executions) and increases the memory requirements (in order to save executions and answers). Therefore, the objective of this work is to implement a memory management mechanism in Ciao with the tabling package loaded. To achieve this goal, the following implementation were made: An error detection system that reveals when the computer is left without memory and activate the reinizialitation of the system. A procedure that adjusts the pointers of the tabling package which points to the WAM after a process of realloc of some of the WAM memory stacks. A memory manager of the tabling package that detects when it is necessary to expand the memory stacks of the tabling package, requests more memory, and adjusts the pointers. In order to help the readers who are not familiar with this topic, we described the data which Ciao and the tabling package host in the dynamic memory stacks that we want to manage. The test cases developed to evaluate the implementation of the memory manager show that: A manager for the dynamic memory allows the execution of programs in a larger number of cases. Memory management policy influences the program execution speed.