1 resultado para C template metaprogramming
em Repositório Científico da Universidade de Évora - Portugal
Resumo:
A interaco dos humanos com os computadores envolve uma combinao das tarefas de programao e de utilizao. Nem sempre explcita a diferena entre as duas tarefas. Introduzir comandos num programa de desenho assistido por computador utilizao ou programao numa linguagem interpretada? Modificar uma folha de clculo com macros utilizao ou programao? Usar um Integrated Development Environment ou IDE para inserir dados num ficheiro utilizao (do IDE) ou programao? A escrita de um texto usando LaTeX ou HTML utilizao ou programao numa markup language? Recorrer a um programa de computao simblica utilizao ou programao? Utilizar um processador de texto utilizao ou programao visual? Ao utilizador no se exige um conhecimento completo de todos os comandos, todos os menus, todos os smbolos do software que utiliza. Nem a memorizao da sintaxe e de todos os pormenores de funcionamento de um programa um atributo necessrio ou sequer til ao utilizador; a concretizao desse conhecimento no assegura maior eficincia na utilizao. Quando se comea, apenas algumas instrues elementares so recebidas, por vezes de um colega, de um Professor, ou obtidas recorrendo pesquisa na Internet. Com a familiarizao, o utilizador exige mais do Software que usa e de si prprio: um manual passa a ser um recurso de grande utilidade. A confiana conquistada gera, periodicamente, a necessidade de auto-exame e de aumento do mbito do conhecimento. Desta forma, quem utiliza computadores acaba por ser confrontado com uma tarefa que, efectivamente, pode ser considerada ou requer programao. Pe-se uma questo no imediato (se ningum decidiu por si) que a da seleco da linguagem de programao. A abordagem multiparadigma e longa experincia de utilizao do C++ tornam-no atractivo para aplicaes onde a eficincia se combina com a disponibilidade de estruturas de dados e algoritmos adoptados pela indstria (o que coloquialmente se denomina STL, Standard Template Library, cf. [#breymann, #josuttis], mais geralmente biblioteca Standard). Adicionalmente, linguagens populares como o Java, C# e PHP possuem sintaxes inspiradas e em muitas partes coincidentes com as do C e C++. Por exemplo, um ciclo for em Java parcialmente coincidente com o do C99, que um sub-conjunto do for do C++. So os pormenores, a eficincia e as capacidades do C++ que permitem a criao de software Profissional. Todos os sistemas operativos clssicos (Unix, Microsoft Windows, Linux) dispem de compiladores, IDE, bibliotecas e so em grande parte construdos recorrendo a C e C++. Relativamente a outras linguagens, a quantidade de ferramentas disponvel e o conhecimento adquirido durante dcadas difcil de ignorar. Esse conhecimento faz com que a sintaxe do C++ parea muito maior do que o estritamente necessrio e afaste potenciais interessados. A longa evoluo do C++ introduziu tambm uma diferena no estilo muito marcada. Cdigo dos anos 80 e 90 do sculo XX frequentemente menos legvel do que o que correntemente se produz. Muitos tutoriais disponveis online fazem parecer a linguagem menos rigorosa (e mais complexa) do que na realidade , j que raramente apresentado o caso geral da sintaxe. Constata-se que muitos autores ainda usam os cabealhos do C, quando j no so necessrios. Scott Meyers afirma que o C++ uma federao de linguagens [#scottmeyers] e por esse facto requer perspectivas de abordagem distintas de outras linguagens. Sem alguma sistematizao difcil apreciar a sua compacidade e coerncia. Porm, a forma harmoniosa como as componentes sintcticas se encaixam uma grande mais-valia do C++ s constatada com experimentao e leitura atenta. A presente monografia dirige-se a quem pretenda utilizar o C++ como ferramenta profissional de Software. Em termos de pr-requisitos Acadmicos, dir-se- que um curso (1 Ciclo) de Cincia ou de Engenharia aumentar o interesse por certos aspectos mais tcnicos da linguagem mas qualquer indivduo com gosto pela experimentao tirar proveito do contedo. Este texto no busca a exaustividade enciclopdica na cobertura do tema. Neste texto forneo, de forma directa, uma introduo ao C++ a qual permite comear a produzir cdigo sem os custos da disperso de fontes e notaes na recolha de informao. Antecipo assim a sua utilizao nos Pases de Lngua Portuguesa, uma vez que os textos que encontrei so ora mais exigentes ora menos completos, frequentemente ambos.