2ma pcsxxxx laboratrio de processadores
Transcrição
2ma pcsxxxx laboratrio de processadores
Extraído do PPP de Engenharia de Computação – Ênfase Sistemas Corporativos Disciplina para 2º MA (Engenharia de Computação – Ênfase Sistemas Corporativos) 1 código code PCS3636 2 Nome da Disciplina 3 Créditos / Credits 4 Vagas / Places 5 6 7 8 Duração / Duration Tipo / Type Estágio / Training Objetivos / Goals PROGRAMA COMPLETO DE DISCIPLINA Ano 2016 Complete Discipline Program Year Paradigmas de Linguagens de Programação /Programming Language Paradigms 4 Aula / Lessons (1 crédito = 15 h) 0 Trabalho / Assignment (1 crédito = 30 h) 50 Alunos regulares / Regular students 5 Alunos especiais / Special regime students 15 (semanas / weeks) Anual / Annual Semestral Quadrimestral / 4-month 0 (horas / hours) – referente aos cursos quadrimestrais Prover fundamentos sobre os elementos componentes das linguagens de programação, os paradigmas existentes e sobre os princípios de sua implementação, com o objetivo de dotar o estudante de ferramentas suficientes para que possa fazer uma boa escolha e utilização de linguagens em uso, que se mostrem adequadas a cada aplicação. Provide fundamentals on the components of programming languages, the existing paradigms and the principles of their implementation, giving skills to the student for correctly choosing and using programming languages for use in the development of his/her application. 9 Responsável / Person in charge (fornecer número funcional e nome) No Nome 10 Cursos atendidos / Courses served (fornecer código e nome – um curso por linha) Habilitação: Engenharia de Computação – Ênfase Sistemas Corporativos 11 Programa (preenchimento obrigatório da versão em inglês) I. Conceitos e fundamentos a) Motivação e objetivos do estudo desta disciplina; história das linguagens de programação; b) Conceitos, fundamentos, paradigmas e aplicações dos diversos tipos de linguagens de programação; c) Atributos para a avaliação de linguagens de programação; d) O mecanismo de processamento e a utilização de linguagens de programação em um sistema computacional; e) O processo de reconhecimento, tradução, interpretação e execução de linguagens de programação f) Estruturas de dados, sua representação e manipulação nas linguagens de programação imperativas; g) Conceito de tipos abstratos de dados. Definição e uso de tipos abstratos em linguagens de programação; h) Sequências de execução e seu controle em linguagens de programação; i) Subprogramas: definição, utilização, controle de fluxo, passagem de parâmetros; Linguagens funcionais; j) Classes, métodos, objetos, herança, polimorfismo; Linguagens orientadas a objetos; l) Programas declarativos; Linguagens de programação em lógica; k) Concorrência, paralelismo, sincronização, comunicação, exceções, co-rotinas; Outros paradigmas. II. Estudos de Casos dos principais paradigmas: Para cada linguagem: histórico, tutorial básico, sintaxe, semântica, identificação dos conceitos, aplicação a) Linguagens imperativas simples – Fortran, Basic,C b) Linguagens estruturadas em blocos – Algol, Pascal c) Linguagens orientadas a objetos – Smalltalk, Ada, C++, Java d) Linguagens funcionais – Lisp, ML e) Linguagens de programação em lógica – Prolog syllabus I. Concepts and Fundamentals a) Motivation and goals; history of programming languages; b) Concepts, fundamentals, paradigms and applications of several types of programming languages; c) Attributes for the evaluation of programming languages; d) Execution and using mechanism of programming languages in a computational system; e) Parsing, translation, interpreting, execution of programming languages f) Data structures, their representation and manipulation in imperative programming languages; g) Abstract data types. Defining and using abstract data types in programming languages; h) Sequences of execution and its control in of programming languages; i) Subprograms: defining, using, flow control, parameter passing. Functional languages; j) Classes, methods, objects, heritage, polymorphism; object-oriented languages; l) Declarative programs; logic programming languages; k) Concurrency, parallelism, synchronization, communication, exceptions, co-routines; other paradigms. II. Paradigm case studies: For each language: history, short tutorial, syntax, semantics, concept identification, applications. a) Simple imperative languages – Fortran, Basic,C b) Block structured languages – Algol, Pascal c) Object oriented languages – Smalltalk, Ada, C++, Java d) Functional languages – Lisp, ML e) Logic programming languages – Prolog 12 Programa resumido / Abstract I – Conceitos e fundamentos a) Introdução, história; b) conceitos; c) avaliação; d) linguagens de programação no computador; e) análise, tradução e interpretação; f) estruturas de dados; g) tipos abstratos de dados h) controle de sequência; i) subprogramas; j)linguagens orientadas a objetos; k) concorrência, paralelismo, sincronização, comunicação, exceções, co-rotinas. II – Estudo de casos de paradigmas: imperativo, estruturado em blocos, orientado a objetos, funcional, lógico. I. Concepts and Fundamentals a) Introduction, history; b) Concepts, c) evaluation; d) programming languages in a computer; e) Parsing, translation, interpreting, f) Data structures; g) Abstract data types; h) Sequence control; i) Subprograms; j) object-oriented languages; l) logic programming languages; k) Concurrency, parallelism, synchronization, communication, exceptions, co-routines; II. Paradigm case studies: imperative, block-structured, object-oriented, functional, logic. 13 Método de avaliação / Evaluation method 2 provas, leituras, projeto 2 tests (mid and final), readings, computer project. 14 Critério de avaliação / Criterion for approval Se projeto >= 5,0 então (p1+projeto+2p2)/4 >= 5,0 caso contrário 4,9 Final grade = If project >= 5,0 then (p1+project+2.p2)/4 else 4,9 Approval = Final grade >= 5,0 15 Normas de recuperação / Norms for remedial work (p1’+projeto’+2p2’)/4 >= 5,0 onde x’ = nota de recuperação correspondente a x. (p1’+project’+2.p2’)/4 >= 5,0 where x’ = remedial evaluation for x. 16 Bibliografia / Bibliography [1] Terrence W Pratt & Marvin V. Zelkowitz “Programming Languages – design and implementation” Prentice Hall,1999 – 3rd. Edition ISBN 0-13-678012-1 [2] Maurizio Gabbrielli & Simone Martini “Programming Languages – principles and paradigms” Springer, London, 2010, DOI 10.1007/978-1-84882-914-5 [3] Doris Appleby & Julius J. VandeKopple “Programming Languages – paradigm and practice” McGrawHill,1997 – 2nd. Edition [4] Robert W. Sebesta “Concepts of programming languages” Addison Wesley, 2002 – 5th Edition ISBN 0201-75295-6 ISBN-13: 9780131395312