PCS3616. Programação de Sistemas (Sistemas de Programação) Visão Geral

Documentos relacionados
PCS3616. Programação de Sistemas (Sistemas de Programação) Máquinas de Turing

SCC-5832 Teoria da Computação

SCC Introdução à Teoria da Computação

SCC Teoria da Computação e Linguagens Formais

I.2 Introdução a Teoria da Computação

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação

Apostila 06. Objetivos: Estudar a Computabilidade Estudar a Decidibilidade Estudar a Redutibilidade

1 INTRODUÇÃO E CONCEITOS BÁSICOS

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Computação efectiva. Que linguagens podem ser reconhecidas por algum tipo de autómato?

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Teoria da Computação Prof. Lucília Figueiredo Prova 03 - ENTREGA DIA 24/06/2015. (a) Descreva o programa da MT usando um pseudocódigo.

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior.

Linguagens Formais e Autômatos. Tiago Alves de Oliveira

GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de Algoritmos: Computabilidade e Máquina de Turing

Teoria da Computação. Computabilidade e complexidade computacional

Linguagens Formais e Autômatos Apresentação da Disciplina

Teoria da Computação (BBC244)

Marcos Castilho. DInf/UFPR. 16 de maio de 2019

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 22 de Fevereiro de 2018

Teoria da Computação. Máquinas Universais Máquina de Turing

Juliana Kaizer Vizzotto. Universidade Federal de Santa Maria. Disciplina de Teoria da Computação

Máquinas de Turing para construção: Foram encontrados dois modelos que se destacaram em nossas pesquisas.

UNIVERSIDADE ESTADUAL DO SUDOESTE DA BAHIA - UESB DEPARTAMENTO DE CIÊNCIAS EXATAS - DCE PLANO DE CURSO DISCIPLINA

ECO026 TEORIA DA COMPUTAÇÃO. Prof: Rafael Santos Site:

Teoria da Computação. Computabilidade

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

Turma A - Segundas e Quartas das 8h30min - 10h10min Turma B - Segundas e Quartas das 10h30min - 12h10min

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas

Teoria da Computação. Aula 01

IBM1088 Linguagens Formais e Teoria da Computação

Universidade Federal de Alfenas

Linguagens Formais e Autômatos (BBC242) Professor: Anderson Almeida Ferreira DECOM-UFOP

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO Data: 23/09/2015 Currículo de Cursos Hora: 07:48:26

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO Data: 05/07/2017 Currículo de Cursos Hora: 17:30:22

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Universidade Federal de Alfenas

Teoria da Computação

INE5622 INTRODUÇÃO A COMPILADORES

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Algoritmos Computacionais

Linguaguens recursivamente enumeráveis

Linguagens e Compiladores

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Linguaguens recursivamente enumeráveis e recursivas

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO Data: 29/08/2011 Currículo de Cursos Hora: 16:19:21

PLANO DE ENSINO. CURSO: Bacharelado em Sistemas de Informação MODALIDADE: PRESENCIAL ( X ) OBRIGATÓRIA ( ) OPTATIVA DEPARTAMENTO: DEINFO

13.2. Sistemas de Post Sistemas de rescrita Cálculo Lambda. ADC/TC/Cap.13/ /LEI/DEIFCTUC 497

Linguagens Formais e Autômatos P. Blauth Menezes

Capítulo A máquina de Turing (TM) padrão Combinações de máquinas de Turing A Tese de Turing. ADC/TC/Cap.9/ /LEI/DEIFCTUC 375

Introdução à Programação Aula 02. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Programação de Sistemas (Sistemas de Programação) Semana 10, Aula 17

Algoritmos I Aula 1 Introdução aos Algoritmos

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 1

INTRODUÇÃO. Prof. Msc. Luis Filipe Alves Pereira 2015

Profa. Sheila Morais de Almeida. março

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD)

Computabilidade e Complexidade (ENG10014)

Computabilidade e Complexidade (ENG10014)

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Turing to Norma, uma ferramenta para auxiliar o estudo da equivalência entre Máquina de Turing e Máquina Norma

Máquinas de Turing - Computabilidade

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Linguagens recursivamente enumeráveis

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Linguagem de Programação I Prof. Tiago Eugenio de Melo.

CRÉDITOS DO CURSO. Carga Horária Créditos IN1030 Seminários 30 2

Os Limites da Computabilidade. Dois Conceitos Distintos. Tese de Church Turing. O Que É Computável? O Que É Possível De Ser Computado?

Universidade Federal de Alfenas

Linguagens Livres do Contexto. Adaptado de H. Brandão

Teresa Galvão LEIC - Teoria da Computação I 3.1

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Outras abordagens à computabilidade. Nota

PCS3616. Programação de Sistemas (Sistemas de Programação) Semana 6, Aula 10. Introdução Programação em linguagem de Montagem

INTELIGÊNCIA ARTIFICIAL

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens

MATRIZ CURRICULAR BACHARELADO EM ENGENHARIA DA COMPUTAÇÃO. 1º Período

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

Universidade Federal de Alfenas

CT-200 Fundamentos de Linguagens Formais e Automata - Aula 01 - In...

ANEXO I SEQÜÊNCIA ACONSELHADA DE DISCIPLINAS Ciência da Computação

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Apresentação. Informação geral + Conceitos iniciais

Modelos de Computação

Universidade Federal de Alfenas

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular TEORIA DA COMPUTAÇÃO Ano Lectivo 2013/2014

Resolução Exe 2.12 Monolítico Recursivo

DECivil Departamento de Engenharia Civil, Arquitectura e Georrecursos. Apresentação. Computação e Programação (CP) 2013/2014.

O que é a Teoria em Ciência da Computação. Introdução à Ciência da Computação Mário S. Alvim

Programação Estruturada

EMENTÁRIO CURSO DE CIÊNCIA DA COMPUTAÇÃO MATRIZ 2013

Universidade Federal do ABC Rua Santa Adélia, Bairro Bangu - Santo André - SP - Brasil CEP Telefone/Fax:

Transcrição:

PCS3616 Programação de Sistemas (Sistemas de Programação) Visão Geral Escola Politécnica da Universidade de São Paulo

Objetivos Familiarização com o funcionamento global de software de sistema computacional Desenvolver experimentos em computador Ambiente (Expressões Regulares, scripts) Máquinas/Algoritmos (Máquina de Turing) Software de Sistema (Montadores, Editores de Ligação. Relocadores) Noções de Compiladores (Front-end) Ferramenta para automatização de geração de código, otimização em Compiladores (Backend). 2

Organização Material no Moodle do Stoa https://disciplinas.stoa.usp.br/course/view.php?id=31356 Professor Ricardo Luis de Azevedo da Rocha Monitor??? 3

Bibliografia Básica SAVAGE, J. Models of Computation: Exploring the Power of Computing, BRYANT R. E. and O HALLARON, D. R. Computer Systems: A Programmer s Perspective, 2010 DONOVAN, J. Systems Programming, 1972 RICARTE, I. Introdução à Compilação, 2008 JOSÉ NETO, J. Introdução à Compilação, 1987 LLVM llvm.org; www.aosabook.org/en/llvm.html Complementar LUCCHESI, C. L. Aspectos Teóricos da Computação, 1979 SIPSER, Michael Introdução à teoria da computação, Thomson, 2007. BECK, L. L. An introduction to Systems Programming, Addison Wesley, 1997 LOPES, B. C. and AULER, R. Getting started with LLVM Core Libraries, 2014 PANDEY, M. and SARDA, S. LLVM Cookbook, 2015 4

Computação Entscheidungsproblem: Início do século (1900), 10º problema de Hilbert Dada uma questão qualquer, como decidir em um número finito de passos se há ou não solução para esta questão. Comentário: Está embutida a idéia de algoritmo O sonho! Solução automática de problemas em um dispositivo qualquer

Condições Necessárias Filosofia Matemática Tecnologia Conceitos: Definição de: Construção de: - Máquinas - Algoritmo, decidibilidade - Máquinas algorítmicas - Inteligência - Avaliação inteligente - Máquinas Inteligentes - Consciência - Avaliação consciente - Máquinas para ajuda Ainda não se possui um conceito completa-mente aceito para consciência, portanto ainda há um longo caminho teórico a percorrer.

Desenvolvimento Teórico Filosofia Conceito de máquina Matemática Definição formal de Algoritmo Procedimento de refutação (Herbrand, 1926) Exposição do conceito de Indecibilidade (Gödel, 1931), nº de Gödel para codificação de símbolos em números Máquina de Turing (Turing, 1936), l-calculus (Church, 1936), funções m-recursivas (Kleene, 1936), Tese de Church - algoritmo é qualquer rotina fixa executável (cálculo) em uma máquina de Turing Tecnologia Possibilidade Teórica de construir máquinas

Conceito de Computação Z = F(x); Se F puder ser dividida em sub-funções Z = f 1 (f 2 (g(x))); F(x) = f 1 (f 2 (g(x))). Continuando. o. processo Z = f 1 (f 2 (...(f n-1 (f n (x))...) \ F(x) = f 1 (f 2 (...(f n-1 (f n (x))...); caso f i (i=1..n), seja instrução executável em alguma máquina...

Funções Efetivamente Calculáveis O problema proposto por Hilbert passa pela definição (formal ou quase formal) de função efetivamente calculável (à época procedimento efetivamente calculável, R. Gandy The confluence of ideas in 1936). Uma função efetivamente calculável é aquela que o ser humano pode calcular através de um procedimento automático (mecânico segundo conceito da época). O grande problema foi justamente estabelecer uma definição formal para função efetivamente calculável. A máquina de Turing foi proposta como resposta ao problema.

Funções Efetivamente Computáveis Dada uma máquina de Turing M, se uma função qualquer f puder ser executada nesta máquina, então esta função é dita efetivamente computável. Logo esta função também pode ser executada através de funções m-recursivas ou l-calculus (e também gramáticas) Logo o conceito de computação pode ser definido através da Máquina de Turing.

Funções Computáveis Uma função f(x 1,..., x n ) é dita computável se existe uma máquina de Turing Z tal que produza como resultado uma expressão (x 1,..., x n ) em sua fita, e que: f(x 1,..., x n ) = (x 1,..., x n ) Esta é a formulação proposta por Turing para o problema das funções efetivamente calculáveis. A caracterização de Kleene para o mesmo problema, chamada de funções m-recursivas é baseada em números de Gödel e em aplicações de funções.

Máquina de Turing a b b a Fita da máquina q 3 h q 2 q 0 q 1 Unidade de controle, composta por um conjunto finito de estados Cabeça de leitura e gravação, permite observar o conteúdo da fita, bem como modificá-lo

Ações da Máquina de Turing As ações possíveis (instruções) são: R: Mover a cabeça de leitura/gravação para a esquerda L: Mover a cabeça de leitura/gravação para a direita s: Escreve o símbolo s na fita, na posição atual da cabeça A parada da máquina se dá quando esta entra no estado h, halt.

Exemplo # a # a # # M = (K,,, s); K= {q, q }; = {a, #}; s = q = q s (q, s) q a (q, #) q # (h, #) q a (q, a) q # (q, R)

Máquinas baseadas em Estado Autômatos Autômatos finitos e autômatos de pilha Autômatos adaptativos Equivalência entre a máquina de Turing e o autômato adaptativo, quanto ao poder computacional Máquina de Turing Máquina de Post

Tese de Church Em 1936 Kleene demonstra a equivalência entre lambda-calculi, funções recursivas e máquinas de Turing. De posse dos resultados, Church convence-se de que: Todos os modelos conceituais de computação são equivalentes. Aceita-se então que Máquinas de Turing são versões formais de algoritmos.

Conclusão Desde a proposta de Hilbert em 1900 muito esforço teórico foi dispendido para que se pudesse atingir os resultados atuais, com computadores e alta tecnologia. No esforço vários modelos de computação distintos foram desenvolvidos independentemente pelos pesquisadores. Demonstra-se de equivalência de poder computacional entre os diversos modelos de computação.

Conclusão - final Modelos de computação Máquinas de Turing Lambda-calculi Gramáticas Funções recursivas A Tese de Church propõe que qualquer modelo computacional seja equivalente aos demais.

De Máquinas de Turing a Computadores Eletrônicos A definição de máquina de Turing universal pressupõe que tanto o controle (programa, algoritmo) quanto as informações a serem manipuladas sejam lidas pela máquina (estejam presentes na fita). Esta é a definição formal de von Neuman (1945) para o modelo de arquitetura de computadores até hoje utilizado. Baseado na idéia de McCulloch e Pitts de redes neurais (1943).

Arquitetura de von Neuman Unidade de processamento Controle Execução Instruções Dados Unidade de Leitura/ Escrita Memória

O Computador O Computador Eletrônico nada mais é do que um dispositivo que realiza tarefas (rapidamente), desde que as tarefas possam ser divididas em pequenas instruções, e essas instruções sejam dispostas e ordenadas (por um elemento humano), de forma a poderem ser processadas nele. As inovações nos computadores são em sua tecnologia de materiais e não em arquitetura.

Conexão com outras áreas Biologia Medicina Psicologia Química Física Computação influenciada e influenciando Sociologia Letras Engenharia Matemática Lingüística

Aplicações Computação Gráfica/Realidade Virtual: Medicina, Simulação, Treinamento, Educação Telecomunicações/Redes/Internet: Geoprocessamento, Comunicação, Meteorologia Banco de Dados/Hipermídia Educação, Administração, Direito, Pesquisa, Medicina Tecnologias Inteligentes/I.A. Autocontrole em dispositivos, Apoio à decisão

Influência Sofrida Biologia, Sociologia Robótica, Visão, Trabalho em equipe Psicologia Inteligência, Consciência Física/Química Limites Estruturais Matemática/Lingüística/Letras Limites Teóricos (Gödel), Interfaces, Linguagens

Conclusão Partindo-se de um conceito filosófico, passando por definições matemáticas, chegase até a tecnologia dos computadores. O percurso evolutivo é sempre o mesmo em qualquer área: Princípio Filosófico, Formalização, Aplicação. As redes neurais de McCulloch e Pitts são na realidade mais simples que a máquina de Turing, são baseadas em autômatos finitos. Só foram resolvidos problemas algorítmicos.