necessidade, evitanto que o programa seja finalizado de forma inesperada. Porem, se a linguagem utilizada nao suportar nativamente o recurso de manipulacao de exececoes, quanto mais verificacoes forem necessarias, mais complexo o codigo vai ficar, e isso tera um impacto direto na legibilidade e no custo de implementacao e manutencao. ML, Scheme e Pyhon tem o suporte nativo ao tratamento de excecoes, incluindo a definicao de novos tipos de exececao. Scheme tem o suporte a excecoes integrado ao seu interpretador de comandos, permitindo que o programador decida o que fazer quando uma excecao nao tratada e levantada. As excecoes em ML sempre sao de tipo e podem ter um valor e um efeito associado. Em Python as excecoes definidas pelo usuario utilizam o conceito de heranca da orientacao a objetos. Exception e a classe base na qual todas as outras excecoes sao derivadas. E como existe a unificacao entre classes e tipos, e subclasses sao subtipos, ao tratar uma excecao de um determinada classe todas as subclasses dessa excecao tambem serao tratadas. 8. Conclusao Ao analisar as linguagens e comparar suas caracteristicas percebemos que as escolhas em realizadas em tempo de projeto determinam as caracteristicas das linguagens e os dominios para os quais elas serao mais indicadas. ML e Scheme por serem fundamentadas no paradigma funcional, possuem uma excelente capacidade de escrita para o dominio da matematico, logico e para sistemas simbolicos. Python foi desenvolvida para ser uma linguagem de proposito geral e consegue alcancar esse objetivo ao englobar o paradigma funcional, orientado a objetos e imperativo. ML possui um alto grau de confiabilidade por ser estaticamente tipada e possuir um mecanismo de excecoes nativo e um excelente suporte para abstracao. Alem disso ML permite o uso de estrturas das linguagens imperativas, aumentando a capacidade de escrita para dominios mistos que utilizem modelos formais e logicas de negocios. Python possui um grau de flexibilidade muito alto e isso tem impacto na sua confiabilidade, mas que e contrabalanceado com um modelo de objetos elegante, tratamento de excecoes nativo e orientado a objetos e alta capacidade de abstracao e recursos da programacao funcional. A sua capacidade de escrita e alta para dominio de negocios e dominios mistos. Segue abaixo um quadro resumo das caracteristicas das linguagens: ML Scheme Python Simplicidade Global paradigma imperativo padronizacao biblioteca padrao extensa e inconsistente entre versoes Minimalista padronizacao tipos de dados latentes Minimalista paradigma imperativo unificacao entre tipos e classes Instrucoes de controle estruturas semelhante as linguagens imperativas encontro de padroes Compreensao de listas Recursividade para repeticao Recursividade eficiente Estruturas de selecao simples e multipla Possui um conjunto reduzido de estruturas de controle: for, while, if e with. Recursividade limitada Compreensao de listas Suporte a abstracao tratam as funcoes como tipos de dados de primeira ordem programacao funcional estruturas e registros tratam as funcoes como tipos de dados de primeira ordem programacao funcional listas dinamicas Tudo e objeto e tipo de dado de primeira ordem orientacao a objetos elegante e consistente Heranca multipla Verificacoes de Tipos Estaticamente tipada inferencia dos tipos nao realiza a conversao implicita de tipos permite