TRABALHO DE CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO Prof. Jorge Habib Hanna El Khouri Aluno: _____________ Turma: 2º A UNIOESTE TIPOS ABSTRATOS DE DADOS 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Conceitue e explique a Abstração ? Defina Tipo Abstrato de Dados – TAD ? Quais são as vantagens e as desvantagens de se utilizar TAD ? Qual foi a primeira linguagem a suportar TAD ? Apresente como esta primeira linguagem disponibilizou o TAD para o programador. Descreva como a linguagem Modula 2 disponibiliza TAD. Ada disponibiliza TAD através do recurso de package. Apresente detalhes sobre a forma de uso deste recurso para construir TAD. É possível improvisar um TAD em linguagem C ? Como ? Qual é o mecanismo que a linguagem C++ disponibiliza para construção de TAD ? Explique o que é uma TAD parametrizado ? Mostre como a linguagem ADA disponibiliza o recurso de TAD parametrizado ? C++ disponibiliza TAD parametrizados através dos recursos Class Template e Function Template. Dê exemplos de cada uma destas formas e explique suas principais características. Por exemplo, como ocorrem as instanciações. SUPORTE À PROGRAMAÇÃO ORIENTADA Á OBJETO 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. Cite as três categorias de linguagens que suportam OOP exemplificando cada uma delas. Como foi a evolução dos paradigmas até chegar à Orientação à Objetos ? Quais são as características da Orientação à Objetos ? O que é uma classe ? O que é um objeto ? O que motivou a necessidade pelo recurso de herança ? O que é uma subclasse ? O que é uma superclasse ? O que vem a ser os métodos de uma classe ? Que nome se dá à coleção de métodos de uma classe ? O que é mensagem no contexto de uma classe ? O que é encapsulamento ? Para que servem constructors e destructors ? Quais as possibilidades de controle de acessos às entidades encapsuladas de uma classe ? Qual a diferença entre uma classe amiga e uma classe cliente ? O que são: variável de classe e variável de instância ? O que é sobreposição de métodos ? Defina e compare Herança Simples e Herança Múltipla. Cite uma importante desvantagem da Herança. Defina polimorfismo. Qual a relação entre polimorfismo e vinculação dinâmica ? Explique o que é variável polimórfica. O que é método virtual e método vitual puro ? O que é classe virtual e classe abstrata ? Cite as principais características de Smalltalk em relação a OO. Cite as principais características de C++ em relação a OO. Descreva as formas disponíveis em C++ para Controle de Acesso às partes de uma classe. Cite as principais características de Java em relação a OO. Em Java, todos os tipos primitivos possuem classes empacotadoras (wrapper). O que são classes empacotadoras ? Referência: Sebesta, Robert W. Conceitos de Linguagens de Programação. 4. ed. – Porto Alegre: Bookman, 2000.