COMPUTABILIDAD Y COMPLEJIDAD Práctica 1
|
|
- Josefa Moreno Torregrosa
- hace 6 años
- Vistas:
Transcripción
1 COMPUTABILIDAD Y COMPLEJIDAD Práctica 1 1. Introducción 2. Recordatorio de programación en Mathematica 3. Representación de gramáticas formales 4. Actividades 1. Introducción. El lenguaje de programación escogido para las prácticas es Mathematica [Wolfram,91]. En las implementaciones que se van a llevar a cabo, hay que manejar objetos abstractos como son los autómatas y las gramáticas, sobre los que se realizarán una serie de transformaciones. Tanto unos como otras pueden ser concebidos como estructuras más complejas realizadas en base a otras más sencillas. El interés de las prácticas no estriba en conseguir implementaciones eficientes, sino en utilizar un lenguaje que facilite la construcción de estos objetos abstractos y el manejo de los mismos. Teniendo en cuenta todos estos aspectos, veamos a continuación algunas de las características de Mathematica que lo hacen adecuado para su uso en dichas prácticas. Mathematica es un paquete de desarrollo para aplicaciones de tipo general en las que los aspectos de desarrollo matemático, algebraico, numérico, simbólico y gráfico juegan un papel preponderante. Mathematica está diseñado para tratar tanto cálculos matemáticos, así como aquellos cálculos numéricos tradicionalmente llevados a cabo en FORTRAN. La mayoría de funciones especiales de la física matemática y funciones matriciales, ya están construidas en Mathematica. Además, tiene una extensa capacidad gráfica para la visualización de los resultados de los cálculos. La aplicaciones de Mathematica engloban prácticamente todas las áreas de investigación y desarrollo tanto en investigaciones científicas, de ingeniería, económicas, arquitectura, etc. Dentro de estas mismas áreas se pueden utilizar tanto como herramienta de trabajo como herramienta docente para aquellas materias que conlleven un alta carga de desarrollo matemático. Mathematica como lenguaje de programación se diferencia del FORTRAN o C o PASCAL, por una parte por su habilidad en el tratamiento de expresiones matemáticas, números, expresiones simbólicas, etc., y por otra en que es un lenguaje interpretado. Como consecuencia de ser interpretado, un cálculo tarda más tiempo en ejecutarse que en un lenguaje compilado, sin embargo, el escribir un programa en Mathematica requiere una fracción del tiempo necesario para escribir el mismo programa en C, y lo que es más importante, permite concentrar los esfuerzos en los detalles conceptuales y no en los de implementación. El sistema Mathematica es interactivo, lo cual significa que no hay que compilar programas. En lugar de eso, los cálculos se hacen típicamente ejecutando una línea cada vez, y por tanto, los resultados intermedios pueden verse inmediatamente. Mathematica es potente, puede usarse para realizar grandes cálculos interactivos, evitando los típicos errores algebraicos, y los resultados se pueden comprobar al instante. El lenguaje Mathematica es conciso, cálculos complicados pueden ser escritos en pocas líneas (aunque hay que controlar las limitaciones de memoria del ordenador usado). Es también flexible, pueden establecerse conexiones con otros programas ya existentes, etc.. Mathematica está siendo desarrollado por Wolfram Research, Inc. Actualmente está disponible en prácticamente todas las plataformas de ordenadores. Los códigos se pueden transportar en ficheros
2 ASCII o en ficheros Mathematica Notebook, si se trabaja con versiones compatibles. En esta primera práctica se pretende introducir algunos conceptos elementales del lenguaje asociado a la aplicación Mathematica, así como el desarrollo de aplicaciones relacionadas con palabras y lenguajes empleando esta herramienta. 2. Recordatorio de programación en Mathematica Quizá la estructura de datos más importante en Mathematica (y, sin duda la que nosotros emplearemos más) es la lista. Se pueden emplear listas tanto para las palabras de los lenguajes con los que trabajemos, como para las transiciones de los autómatas que reconozcan dichos lenguajes. list1 = {a, b, {c, d}} asigna a la variable "list1" la lista con primer elemento "a", segundo "b" y tercero la lista {c, d}". El elemento i-ésimo de una lista se referencia como nombre[[i]]. Así, list1[[3]] es {c, d}. Operaciones con listas Notas: Las mayoría de las operaciones no actualizan las listas a menos que se asignen a una variable. Mathematica es sensible a las mayúsculas. No es lo mismo Table que table. En lo sucesivo, l1, l2... designarán listas, x, y... designarán elementos o variables, mientras que m, n... designarán enteros positivos. Las funciones definidas a continuación admiten variantes no especificadas aquí para no hacer demasiado larga esta exposición. Solo se indica alguno de los usos más frecuentes. Para conocer todas las posibilidades se puede teclear?nombre. Table[f(x), {x,n}] Range[m] Length[l1] Position[l1,x] Join [l1, l2] Union[l1, l2] Intersection[l1, l2] Significado Devuelve la lista {f(1), f(2)...f(n)} Devuelve una lista con los m primeros números naturales. Devuelve la longitud de la lista. Devuelve una lista con las posiciones de x en l1. ( cuidado!) Concatena dos listas. Devuelve una lista con los elementos que se encuentran en l1 o l2 y los ordena. Devuelve una lista con los elementos que se encuentran en l1 y l2
3 Complement[l1, l2] Sort[l1] Pueden ser de utilidad las siguientes funciones de Mathematica: Cases[lista, patrón]: Devuelve una lista con los elementos de lista que concuerdan con patrón. Son operadores que dan como resultado True o False: Lista con los elementos de l1 que no estan en l2. Devuelve l1 ordenada de menor a mayor (no actualiza l1). Reverse[l1] Devuelve el reverso de l1. RotateRight[l1] RotateLeft[l1] First[l1] Rest[l1] Drop[l1, n] Take[l1, n] Append[l1, x] Prepend[l1, x] AppendTo[l1, x], PrependTo[l1, x] Delete[l1,n] Select[l1, condición] l1 /. izq -> dcha Devuelve l1 con los elementos desplazados un lugar a la derecha (el último pasa a ser el primero). Idéntico al anterior pero desplazando hacia la izquierda Devuelve el primer elemento de la lista. Lista l1 sin el primer elemento. Devuelve la lista sin los primeros n elementos. Devuelve los primeros n elementos de la lista. Añade el elemento x al final. Añade el elemento x al comienzo. Idénticas a las anteriores pero actualizan la lista. Elimina el elemento n-ésimo de la lista. Lista con los elementos de l1 que cumplen condición. Sustituye en l1 los elementos que se llaman izq por dcha). Operación Negación! Conjunción && Disyunción Igualdad == No igualdad =!= Operador Además están los conocidos: >, <, >=, <=. MemberQ[l1,x] : Devuelve True si x pertenece a l1 y False si no. Programación Mathematica lleva incorporado un lenguaje de programación propio que permite incorporar funciones para realizar tareas específicas al mismo nivel que las funciones predefinidas.
4 Al ser un intérprete, el modo de trabajo puede ser totalmente interactivo; Así si ejecutamos la expresión For[i = 1, i < 10, i++, Print[i]] se escriben en pantalla los dígitos del 1 al 9 (se ha introducido la sentencia For cuya sintaxis es totalmente idéntica a la que tiene en C). Módulos El concepto de módulo es totalmente parecido al de procedure en Pascal. Su esquema genérico es : nombre[parámetros] : = Module [{variables locales separadas por comas}, Acciones (separadas por ;); Return[nvar] (si el módulo devuelve un valor) ] Ejemplo: Módulo que toma como entrada un número positivo n y devuelve la suma de los n primeros números enteros. suma[n_integer]:=module[{i,suma1}, suma1=0; For[i =1,i <= n,i++,suma1 = suma1 + i]; Return[suma1]; ] Para ejecutarlo se escribiría por ejemplo suma[3] (que dará como resultado 6). Estructuras condicionales y de repetición Condicional Estructuras de repetición If[condición, sent_verdad, sent_falso] Do[sentencias, {var,com,fin}] Se ejecuta repetidamente sentencias desde var = com hasta var = fin. Por defecto el incremento de la
5 variable es 1. Se puede utilizar alternativamente{var, com, fin, paso} Se evalúa comienzo y se ejecutan sentencias e incremento hasta que test falla. Se ejecuta sentencias mientras condición es cierta. 3. Representación de gramáticas formales. Representaremos una cadena mediante una lista que contendrá los símbolos de la misma. Por ejemplo, la cadena aabc se representará como la lista {a,a,b,c }, y la cadena vacía como {}. Representaremos una gramática formal G=(N,T,P,S) mediante una lista con cuatro elementos: 1. El primer elemento de la lista representará el conjunto de símbolos no terminales de la gramática, N, mediante una lista de los nombres de los símbolos. Utilizaremos las letras mayúsculas para representar los símbolos no terminales. 2. El segundo elemento de la lista representará el conjunto de símbolos terminales (alfabeto) de la gramática, T, mediante una lista de los nombres de los símbolos. Utilizaremos las letras minúsculas o los dígitos para representar los símbolos terminales. 3. El tercer elemento de la lista representará el conjunto de reglas P de la gramática mediante una lista de la siguiente manera: Sea A un símbolo de N, el conjunto de A-reglas, si existe, se representará mediante una lista con dos componentes, el primero de ellos será el propio símbolo A y el segundo será a su vez una lista que contendrá como elementos las cadenas (representadas a su vez como listas) que conforman la parte derecha de las A-reglas. Veamos el siguiente ejemplo se representará por la lista For[comienzo, test, incremento, sentencias] While[condición, sentencias] A -> Aba λ abb {A,{{A,B,a},{},{a,b,B}}} El conjunto de reglas P se presentará por la lista de todas las A-reglas. Veamos un ejemplo con el siguiente conjunto de producciones S -> ab λ Ab A -> bba S
6 se representará como la siguiente lista {{S,{{a,b},{},{A,b}}},{A,{{b,b,a},{S}}}} 4. El último elemento de la gramática, S, se representa como el propio símbolo. Veamos un ejemplo de representación completo de una gramática. Así, para la gramática G= (N,T,P,S) con N={S,A}, T={a,b} y P el conjunto de producciones mostrado anteriormente, tendríamos la siguiente lista 4. Actividades. Actividad 1 {{S,A},{a,b},{{S,{{a,b},{},{A,b}}},{A,{{b,b,a},{S}}}},S} True si la gramática contiene alguna regla vacía y False en caso contrario. Nota.- Una regla vacía es de la forma A -> λ donde A es un símbolo auxiliar. Actividad 2 True si la gramática contiene alguna regla simple o unitaria y False en caso contrario. Nota.- Una regla simple o unitaria es una regla de la forma A -> B donde A y B son símbolos no terminales. Actividad 3 True si la gramática está en Forma Normal de Chomsky (FNC) y False en caso contrario. Nota.- Una gramática está en FNC si todas sus reglas son de la forma A -> BC o A -> a, donde A,B y C son símbolos no terminales y a es un símbolo terminal. Actividad 4 True si la gramática está en Forma Normal de Greibach (FNG) y False en caso contrario. Nota.- Una gramática está en FNG si todas sus reglas son de la forma A -> a w, donde A es un símbolo no terminal, a es un símbolo terminal y w es una cadena de símbolos no terminales que puede ser la cadena vacía. Actividad 5 Se pide escribir un módulo Mathematica que, teniendo como entrada una gramática formal G, devuelva como salida una gramática formal G1 tal que L(G1)=L(G) r. Actividad 6
7 Se pide escribir un módulo Mathematica que, teniendo como entrada una par de gramáticas formales G1 y G2, devuelva como salida una gramática formal G tal que L(G)=L(G1) U L(G2). Actividad 7 Se pide escribir un módulo Mathematica que, teniendo como entrada una gramática formal G= (N,T,P,S) y un homomorfismo h:t * -> T *, devuelva como salida una gramática formal G1 tal que L (G1)=h(L(G)). Nota.- El homomorfismo se puede definir mediante una lista cuyos elementos son a su vez listas con dos componentes, la primera representa un símbolo de T y la segunda componente representa la cadena que el homomorfismo asigna a dicho símbolo. Por ejemplo, el homomorfismo h(a)=001, h(b) =λ y h(c)=0 se representa mediante la lista {{a,{0,0,1}},{b,{}},{c,{0}}}. Aplicar un homomorfismo al lenguaje representado a través de una gramática consiste en sustituir en sus producciones cada símbolo terminal por la cadena que le asigna el homomorfismo. Referencias bibliográficas [Wolfram,91]. S. Wolfram. Mathematica : A System for doing mathematica by computer. Addison Wesley, 1991.
TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Práctica 4
TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Práctica 4 1. Introducción 2. Recordatorio de programación en Mathematica 3. Representación de gramáticas formales 4. Actividades 1. Introducción. El lenguaje de
Más detallesTEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Práctica 1
TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Práctica 1 1. Introducción. 2. Listas. 2.1 Sintaxis. 2.2 Operaciones con listas. 2.3 Operadores lógicos y relacionales 3. Programación 3.1 Funciones simples 3.2
Más detallesTEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Práctica 5 - Simplificación de gramáticas incontextuales
TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Práctica 5 - Simplificación de gramáticas incontextuales 1. Objetivos 2. Representación de los datos en Mathematica 3. Eliminación de símbolos inútiles 3.1. Símbolos
Más detallesProgramación en Mathematica
UNIVERSIDAD DE JAÉN ESCUELA POLITÉCNICA SUPERIOR Dpto. de Matemáticas (Área de Álgebra) Curso 2004/05 PRÁCTICA Nº3 Programación en Mathematica Mathematica no sólo es un paquete de cálculo simbólico en
Más detalles$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos
PROGRAMACIÓN DE SHELL SCRIPTS EN LINUX El shell es un intérprete de órdenes, pero el shell no es solamente eso; los intérpretes de órdenes de Linux son auténticos lenguajes de programación. Como tales,
Más detallesExamen de Teoría de Autómatas y Lenguajes Formales
Examen de Teoría de Autómatas y Lenguajes Formales TAL 16 de Septiembre de 2008 (I) CUESTIONES: (Justifique formalmente las respuestas) 1. Pronúnciese acerca de la veracidad o falsedad de los siguientes
Más detalles1. Cadenas EJERCICIO 1
LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007 - BOLETÍN DE EJERCICIOS Víctor J. Díaz Madrigal y José Miguel Cañete Departamento de Lenguajes y Sistemas Informáticos 1. Cadenas La operación reversa aplicada
Más detallesLENGUAJES Y GRAMÁTICAS
LENGUAJES Y GRAMÁTICAS Orlando Arboleda Molina Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle 20 de septiembre de 2008 Contenido Lenguajes y Gramáticas Gramáticas Gramáticas
Más detallesSe pueden agrupar las reglas que tienen la misma parte izquierda:
GRAMÁTICA DE CONTEXTO LIBRE Gramática de contexto libre G = (V N, V T, P, S) que genera oraciones copulativas: V N = { , , , , V T = {el, la, hombre, niña,
Más detallesProcesadores de lenguajes Ingeniería Informática Especialidad de Computación Tercer curso, segundo cuatrimestre
Procesadores de lenguajes Ingeniería Informática Especialidad de Computación Tercer curso, segundo cuatrimestre Escuela Politécnica Superior de Córdoba Universidad de Córdoba Curso académico: 2016-2017
Más detallesFundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)
Tags Fundamentos PHP La Sintaxis de PHP se deriva de muchos lenguajes de programación principalmente de C pero Perl también ha tenido mucha influencia en esta sintaxis Con las últimas incorporaciones agregadas,
Más detallesApunte Laboratorio ALPI - El lenguaje de programación Pascal
Apunte Laboratorio ALPI - El lenguaje de programación Pascal 1 2 ÍNDICE GENERAL Índice 1. Estructura de un Programa en Pascal 3 2. Sintaxis de Pascal 4 2.1. Uso de mayúsculas.....................................
Más detallesTema 2. Concepto de Algoritmo
Tema 2. Concepto de Algoritmo Objetivos Definir el concepto de algoritmo Resolver problemas sencillos mediante el diseño de un algoritmo Conocer los tipos de datos elementales y las operaciones sobre ellos
Más detallesInformática General 2018 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales
UNA / AREA TRANSDEPARTAMENTAL DE ARTES MULTIMEDIALES Licenciatura en Artes Multimediales Informática General 2018 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales JavaScript - Programación
Más detallesLenguajes y Compiladores Aspectos Formales (Parte 2) Compiladores
Facultad de Ingeniería de Sistemas Lenguajes y Aspectos Formales (Parte 2) 2007 1 Derivaciones El proceso de búsqueda de un árbol sintáctico para una cadena se llama análisis sintáctico. El lenguaje generado
Más detallesGLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo:
Cuestionario Modulo 1.1 GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo: 1001 0110. 2. qué es Dato? Definición: Es toda
Más detallesTemas. Objetivo. Símbolo, alfabeto. Hileras y operaciones con hileras. Operaciones con lenguajes
0 1 Temas Símbolo, alfabeto Hileras y operaciones con hileras Operaciones con lenguajes Objetivo Que el estudiante logre conocer, comprender y manejar conceptos vinculados con la Teoría de Lenguajes Formales
Más detallesInformática General Cátedra: Valeria Drelichman Pedro Paleo Leonardo Nadel Norma Morales
Informática General 2018 Cátedra: Valeria Drelichman Pedro Paleo Leonardo Nadel Norma Morales Qué es JavaScript? Se trata de un lenguaje de tipo script compacto, basado en objetos y guiado por eventos
Más detallesPre-Laboratorio 1 MA-33A : Introducción a Matlab
Pre-Laboratorio 1 MA-33A 2007-1: Introducción a Matlab Gonzalo Hernández - Gonzalo Rios UChile - Departamento de Ingeniería Matemática 1 Interfaz de Matlab Al ejecutar el programa Matlab, se abrirá una
Más detallesProcesadores de lenguajes Ingeniería Informática Especialidad de Computación Tercer curso, segundo cuatrimestre
Procesadores de lenguajes Ingeniería Informática Especialidad de Computación Tercer curso, segundo cuatrimestre Escuela Politécnica Superior de Córdoba Universidad de Córdoba Curso académico: 2013-2014
Más detalles- AnallogicA - Software para crear tablas de verdad
- AnallogicA - Software para crear tablas de verdad Henry Suarez skilltik@gmail.com Año 2010 Proyecto de POO de la carrera de Ingeniería en Informática de la Universidad Nacional del Litoral. Módulos del
Más detallesTEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.
Tema 2. TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL. PARTE : VARIABLES, OPERADORES Y CONSTANTES.. INTRODUCCIÓN AL LENGUAJE C 2. PROGRAMAS BÁSICOS EN LENGUAJE C 3. DATOS EN LENGUAJE C
Más detallesTema 3.- Predicados y sentencias condicionales
UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO PROGRAMACIÓN DECLARATIVA INGENIERÍA INFORMÁTICA ESPECIALIDAD DE COMPUTACIÓN CUARTO CURSO PRIMER
Más detallesUNIDAD 2 Descripción de un programa
Descripción de un programa Estructura general de un programa. Elementos básicos. Tipos de datos simples: enteros, reales y carácter. Representación de datos en memoria. Operaciones sobre tipos de datos
Más detallesCOLEGIO DE ESTUDIOS DE POSGRADO DE LA CIUDAD DE MÉXICO
COLEGIO DE ESTUDIOS DE POSGRADO DE LA CIUDAD DE MÉXICO ELABORO: ALEJANDRA FUERTES FRANCISCO TEMA: LENGUAJES DE PROGRAMACIÓN INTRODUCCIÓN Un lenguaje de programación es un conjunto de instrucciones que
Más detallesJavaScript: Operadores
Las variables por sí solas son de poca utilidad. Hasta ahora, sólo se ha visto cómo crear variables de diferentes tipos y cómo mostrar su valor mediante la función alert(). Para hacer programas realmente
Más detallesTema: Estructuras de Selección en C#.
2 Programación I Tema: Estructuras de Selección en C#. Programación I. Guía 4 3 Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Objetivos Utilizar las instrucciones de
Más detallesIntroducción. Las gramáticas definen las reglas que definen a los lenguajes Las reglas pueden tener una diversa variedad de esquemas
Gramáticas Introducción Las gramáticas definen las reglas que definen a los lenguajes Las reglas pueden tener una diversa variedad de esquemas En algunos lenguajes, una sucesión de símbolos depende del
Más detallesInformática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales
UNA / AREA TRANSDEPARTAMENTAL DE ARTES MULTIMEDIALES Licenciatura en Artes Multimediales Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales JavaScript Algoritmo
Más detallesProgramación Web Tema 3.2 Java Script Estructura del Lenguaje. Ramón Alcarria ETSI en Topografía, Geodesia y Cartografía - UPM
Programación Web Tema 3.2 Java Script Estructura del Lenguaje Miguel Ángel Manso Emerson Castañeda Ramón Alcarria ETSI en Topografía, Geodesia y Cartografía - UPM Contenido Variables Operadores Estructuras
Más detallesResolución de Problemas y Algoritmos
RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS CLASE 3 Definición y compatibilidad de tipos de datos. Sentencia condicional CASE. Luciano H. Tamargo http://cs.uns.edu.ar/~lt Depto. de Ciencias e Ingeniería de la
Más detallesINTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN (WIN-LOGO)
INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN (WIN-LOGO) Se define como lenguaje de programación a un conjunto de símbolos y reglas que sirven para realizar programas de ordenador. Un programa es un conjunto
Más detallesSintaxis de PSeInt Tutorial
Sintaxis de Tutorial Introducción a la Programación (T.U.M - T.U.G. - T.U.E. - T.U.T. - Prof) Introducción a la Computación (T.U.R. - T.U.W.) Fundamentos de la Informática (Ing. en Minas - Ing. Electr.)
Más detallesInformática Aplicada I
Informática Aplicada I Marcela Morales Quispe CIMAT Septiembre 4, 2013 marcelamq@cimat.mx Marcela Morales Quispe (CIMAT) Informática Aplicada I Septiembre 4, 2013 1 / 8 Índice 1 Operadores aritméticos
Más detallesIntroducción a la programación: Contenido. Introducción
Introducción a la programación: Contenido Introducción a la programación:... 1 Introducción... 1 1. Procesamiento automatizado de información... 1 2. Concepto de algoritmo.... 2 3. Lenguajes de programación....
Más detallesLENGUAJES Y GRAMÁTICAS
LENGUAJES Y GRAMÁTICAS LENGUAJES Y GRAMÁTICAS La sintaxis de un lenguaje natural en lenguajes como el ingles, español, alemán o francés es extremadamente complicada, dado que es imposible especificar la
Más detallesFicha de Aprendizaje N 13
Ficha de Aprendizaje N 13 Curso: Lógica y lenguaje de programación Tema: Fundamentos de programación Duración: 2 horas pedagógicas Logros de aprendizaje Identifica los diferentes tipos de operadores que
Más detallesComponentes Básicos. InCo. InCo Componentes Básicos 1 / 28
Componentes Básicos InCo InCo Componentes Básicos 1 / 28 Modelo de Computación Vemos al computador como un procesador de datos. +------------+ Entrada ===> Computador ===> Salida +------------+ InCo Componentes
Más detallesUnidad II: Análisis semántico
Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico
Más detallesEl lenguaje C. 1. Identificadores, constantes y variables
Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria
Más detallesCONJUNTOS REGULARES. Orlando Arboleda Molina. 19 de Octubre de Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle
CONJUNTOS REGULARES Orlando Arboleda Molina Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle 19 de Octubre de 2008 Contenido Expresiones regulares Teorema de Kleene Autómatas
Más detallesTecnologías en la Educación Matemática
Tecnologías en la Educación Matemática Datos, Expresiones, Condicionales y Repetición Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR 1 Datos Los algoritmos combinan datos
Más detallesÁrea: INFORMÁTICA. Saber- Saber: Identificar DFD como herramienta para escribir los algoritmos de forma lógica.
Guía No: 2 Subdirección de Educación Departamento de Educación Contratada Colegio CAFAM Bellavista CED GUIA DE APRENDIZAJE Docente: Luz del Carmen Barrera Área: INFORMÁTICA Fecha: II BIMESTRE 2014 Grado:
Más detallesFundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002
Departamento de Cs. e Ingeniería de la Computación Universidad Nacional del Sur Ejercicios Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto
Más detallesEl programa en JavaScript debe ir encerrado entre la marca script e inicializada la propiedad type con la cadena text/javascript:
Javascript Qué es JavaScript? Es un lenguaje de scripting (Código interno en las páginas HTML) necesario para los elaboradores de sitios Web, mediante el cual se puede hacer que las páginas sean activas
Más detallesTeoría de Autómatas y Lenguajes Formales, IS17 Ingeniería Técnica en Informática de Sistemas. Práctica 1: Introducción al Analizador Léxico FLEX
Teoría de Autómatas y Lenguajes Formales, IS17 Ingeniería Técnica en Informática de Sistemas Práctica 1: Introducción al Analizador Léxico FLEX Enunciado: El objetivo de esta práctica consiste en aprender
Más detallesDra. Jessica Andrea Carballido
Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Problemas, Algoritmos y Programas PROBLEMA Solución ALGORITMO PROGRAMA Problemas,
Más detallesAlgoritmo, Estructuras y Programación I Ing. Marglorie Colina
Unidad II: Fundamentos de la Programación Estructurada Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Estructura General de un Programa Zona de ficheros de cabecera de las librerías Zona
Más detallesJavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante.
Javascript (II) 1 Elementos Básicos: Comentarios: Para una línea // Esto es un Comentario Para un bloque /*......... */ Literales: Valores que puede tomar una variable o una constante. Ejemplos: "Soy una
Más detallesProf. María Alejandra Quintero. Informática Año
Prof. María Alejandra Quintero Informática Año 2014-2015 Es la acción de escribir programas de computación con el objetivo de resolver un determinado problema. Implica escribir instrucciones para indicarle
Más detallesAnálisis léxico. Formalización y desarrollo. Procesadores de Lenguajes. Ingeniería Técnica superior de Ingeniería Informática
Procesadores de Lenguajes Ingeniería Técnica superior de Ingeniería Informática Departamento de Lenguajes y Sistemas informáticos Análisis léxico Formalización y desarrollo Javier Vélez Reyes jvelez@lsi.uned.es
Más detallesAPRENDIZAJE Práctica 1 Implementación de un generador de muestras aleatorias para lenguajes regulares
APRENDIZAJE Práctica 1 Implementación de un generador de muestras aleatorias para lenguajes regulares 1. Introducción 2. Generador de muestras aleatorias para lenguajes regulares 3. Algunas consideraciones
Más detallesDra. Jessica Andrea Carballido
Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR Problemas, Algoritmos y Programas PROBLEMA Solución ALGORITMO PROGRAMA Problemas,
Más detallesMétodos con Parámetros
Métodos con Parámetros Hasta ahora, nuestra clase RobotInspector todavía no es muy útil. Ejemplo para colocar dos conos hicimos esto en la clase anterior. Lo que lográbamos es que el robot coloque dos
Más detallesMáquinas de estado finito y expresiones regulares
Capítulo 3 Máquinas de estado finito y expresiones regulares En este tema definiremos y estudiaremos máquinas de estado finito, llamadas también máquinas de estado finito secuenciales o autómatas finitos.
Más detallesTema 1. Introducción
Departamento de Tecnologías de la Información Tema 1 Introducción Ciencias de la Computación e Inteligencia Artificial Índice 1.1 Conceptos 1.2 Un poco de historia 1.3 Estructura de un compilador 1.4 Teoría
Más detallesCaracterísticas de JavaScript
Características de JavaScript Qué es JavaScript? o Lenguaje de programación interpretado utilizado fundamentalmente para dotar de comportamiento dinámico a las páginas web. o Cualquier navegador web actual
Más detallesTema 1: Introducción. Teoría de autómatas y lenguajes formales I
Tema 1: Introducción Teoría de autómatas y lenguajes formales I Bibliografía Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introducción a la Teoría de Autómatas, Lenguajes y Computación. Addison Wesley.
Más detallesALGORITMOS II PSEUDOCODIGOS INTRODUCCION AL PSEINT CORPODICES VICTOR ANDRES OCHOA CORREA
ALGORITMOS II PSEUDOCODIGOS INTRODUCCION AL PSEINT CORPODICES VICTOR ANDRES OCHOA CORREA CONTENIDOS Definición de un algoritmo Tipos de datos Representaciones de un algoritmo Lenguaje natural Pseudocódigo
Más detallesTEMA 1: LÓGICA. p p Operador conjunción. Se lee y y se representa por. Su tabla de verdad es: p q p q
TEMA 1: LÓGICA. Definición. La lógica es la ciencia que estudia el razonamiento formalmente válido. Para ello tiene un simbolismo que evita las imprecisiones del lenguaje humano y permite comprobar la
Más detallesClase 2: El Lenguaje Python
Agosto 2012 Clase 2 Temario Consideraciones generales Operadores y expresiones Variables y Tipos Funciones Las Estructuras de Control Guía práctica Primer curso de programación usando robots y Python Objetivos
Más detallesUnidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos
Unidad Didáctica 3 Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Definición de tipo genérico Hablamos de un tipo genérico cuando el tipo en cuestión depende
Más detallesTeoría de Lenguajes. Gramáticas incontextuales
Teoría de Lenguajes Gramáticas incontextuales José M. Sempere Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia Gramáticas incontextuales 1. Definiciones básicas.
Más detallesMODELOS DE COMPUTACIÓN CRISTIAN ALFREDO MUÑOZ ALVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACON PEÑA EDUARDO GONZALES PULGARIN
MODELOS DE COMPUTACIÓN CRISTIAN ALFREDO MUÑOZ ALVAREZ JUAN DAVID LONDOÑO CASTRO JUAN PABLO CHACON PEÑA EDUARDO GONZALES PULGARIN LENGUAJES Y GRAMÁTICAS La sintaxis de un lenguaje natural en lenguajes como
Más detallesDATOS DE IDENTIFICACIÓN DEL CURSO
DATOS DE IDENTIFICACIÓN DEL CURSO DEPARTAMENTO: Ciencias Computacionales ACADEMIA A LA QUE PERTENECE: Estructuras y Algoritmos NOMBRE DE LA MATERIA: Teoría de la Computación CLAVE DE LA MATERIA: CC209
Más detallesSemana Lenguajes 7de programación Tipos de lenguajes de programación
Semana Lenguajes 7de programación Semana 6 Empecemos! Estimados participantes, bienvenidos a esta nueva semana, en la que estudiaremos los lenguajes de programación más utilizados. No olvides repasar los
Más detallesProgramación MODULAR: Subalgoritmos - funciones y procedimientos
Programación MODULAR: Subalgoritmos - funciones y procedimientos Uno de los métodos fundamentales para resolver un problema es dividirlo en problemas más pequeños, llamados subproblemas. Estos problemas
Más detallesDesarrollo de lenguajes y Compiladores [MII-771] Capítulo 1: Lenguajes y Gramáticas Formales
Desarrollo de lenguajes y Compiladores [MII-771] Capítulo 1: Lenguajes y Gramáticas Formales Dr. Ricardo Soto [ricardo.soto@ucv.cl] [http://www.inf.ucv.cl/ rsoto] Escuela de Ingeniería Informática Pontificia
Más detallesEstructura de Datos Unidad 1: Repaso del Lenguaje Java
Estructura de Datos Unidad 1: Repaso del Lenguaje Java Introducción Java es un lenguaje de programación orientado a objetos, desarrollado por Sun Microsystems a principios de 1991, con el que se van a
Más detallesExpresiones Aritméticas, relacionales y lógicas. Prof. Hilda Contreras Programación 1
Expresiones Aritméticas, relacionales y lógicas Prof. Hilda Contreras Programación 1 hildac.programacion1@gmail.com Expresión aritmética Similar a las fórmulas matemáticas Es una expresión que manipula
Más detallesGramaticas Independientes del Contexto, ejemplos y ejercicios
OpenStax-CNX module: m16320 1 Gramaticas Independientes del Contexto, ejemplos y ejercicios Carlos Arturo Cortés Fuentes This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution
Más detallesControl de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO
Control de Flujo Estructuras de Control Experiencia Educativa de Algorítmica 1 Introducción El estilo de como escribimos y analizamos un algoritmo se convierte en una de las principales características
Más detallesLa resolución de problemas es una tarea únicamente humana comprobable en todos los casos con los mismos resultados.
Pseudocódigo Introducción La importancia de sistematizar procesos y crear programas de cómputo radica esencialmente en que estos se puedan utilizar como resolución de problemas similares en muchos casos,
Más detallesGRAMATICAS LIBRES DEL CONTEXTO
GRMTICS LIBRES DEL CONTEXTO Estas gramáticas, conocidas también como gramáticas de tipo 2 o gramáticas independientes del contexto, son las que generan los lenguajes libres o independientes del contexto.
Más detalles14/03/2018. Problemas, Algoritmos y Programas. Problemas, Algoritmos y Programas. Programas y Lenguajes. Programas y Lenguajes. Programas y Lenguajes
Problemas, Algoritmos y Programas PROBLEMA Solución Dra. Jessica Andrea Carballido jac@cs.uns.edu.ar ALGORITMO Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR PROGRAMA Problemas,
Más detallesANÁLISIS LÉXICO AUTÓMATAS FINITOS
Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público
Más detallesCapítulo 1 Introducción
Capítulo 1 Introducción Pasos a seguir para resolver un problema 1- Definición del problema Consiste en identificar el problema y enunciarlo de una manera comprensible. Se puede partir de las preguntas:
Más detallesEstructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa
Contenido Estructura de un programa en Java... 2 Tipos de datos básicos... 2 Operadores... 3 Literales... 4 Entrada / Salida... 4 Sentencias condicionales... 5 Funciones... 5 Ejercicios... 6 Variables,
Más detallesNúmeros enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos.
Universidad Rafael Urdaneta Escuela de Ingeniería de Computación Números enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos. Asignación
Más detallesElementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
Más detallesSentencias iterativas
Sentencias iterativas 1. Objetivos Al finalizar esta actividad, serás capaz de: 1. Utilizar adecuadamente la sentencia while para generar la repetición en la ejecución de grupos de sentencias 2. Motivación
Más detallesTema 1: Introducción
Tema 1: Introducción Procesamiento de Lenguajes Dept. de Lenguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de Lenguajes Tema 1: Introducción 1 / 28 Definición de compilador Un compilador
Más detallesPrácticas de Lenguajes, Gramáticas y Autómatas
Prácticas de Lenguajes, Gramáticas y Autómatas Cuarto cuatrimestre (primavera) de Ingeniería en Informática Curso 2010-2011 http://webdiis.unizar.es/asignaturas/lga Profesor Responsable: Jorge Júlvez Dpto.
Más detallesGuía práctica de estudio 05: Pseudocódigo
Guía práctica de estudio 05: Pseudocódigo Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Autorizado por: M.C. Alejandro Velázquez Mena Guía
Más detallesTema 2: Lenguajes Formales. Informática Teórica I
Tema 2: Lenguajes Formales Informática Teórica I Teoría de Lenguajes Formales. Bibliografía M. Alfonseca, J. Sancho y M. Martínez. Teoría de Lenguajes, Gramáticas y Autómatas, R.A.E.C., Madrid, (1998).
Más detallesEnteros. Son los números que no contienen componentes fraccionarios y, por tanto, no contienen punto decimal.
LENGUAJE DE PROGRAMACIÓN TURBO PASCAL El lenguaje de programación de alto nivel Pascal fue diseñado el 1968 por Niklaus Wirth con una finalidad eminentemente pedagógica El 1983, el Pascal fue estandarizado
Más detallesTema: Estructuras de Selección en C#.
Programación I, Guía 4 1 Tema: Estructuras de Selección en C#. Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Objetivos Utilizar las instrucciones de selección if e
Más detallesTema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I
Tema 4: Gramáticas independientes del contexto Teoría de autómatas y lenguajes formales I Bibliografía Hopcroft, J. E., Motwani, R., y Ullman, J. D. Introducción a la Teoría de Autómatas, Lenguajes y Computación.
Más detallesLógica Matemática. Tema: Los conectores lógicos y sus símbolos
Lógica Matemática Tema: Los conectores lógicos y sus símbolos Los conectores lógicos y sus símbolos Además de simbolizar las proposiciones, también se pueden emplear símbolos para los mismos conectores
Más detallesESPECIFICACIÓN DE SÍMBOLOS
1 UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA DEPARTAMENTO DE COMPUTACIÓN ESPECIFICACIÓN DE SÍMBOLOS Elaborado el Sábado 24 de Julio de 2004 I.- COMPONENTES LÉXICOS, PATRONES Y LEXEMAS (extraído de
Más detallesAlgoritmos. Medios de expresión de un algoritmo. Diagrama de flujo
Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten
Más detalles