2 resultados para Sistemas operativos
em Repositório Científico da Universidade de Évora - Portugal
Resumo:
Nesta dissertação descreve-se uma proposta de implementação de uma plataforma de desenvolvimento de Sistemas de Comunicação Aumentativa e Alternativa para programadores, com o objectivo de melhorar a produtividade e diminuir os tempos despendidos na implementação deste tipo de soluções. Esta proposta assenta numa estrutura composta por widgets configuráveis por código e integráveis em novas aplicações, numa filosofia de reaproveitamento de objectos e funcionalidades, permitindo ainda a uniformização da estrutura do código no desenvolvimento de softwares deste tipo. Esta plataforma pretende ainda dar flexibilidade aos programadores, através da possibilidade de introdução de novas funcionalidades e widgets, permitindo também que se testem novas abordagens ao software durante a investigação. A implementação em tecnologias open source independentes da plataforma, permitirá ainda utilizar os objectos deste toolkit em vários sistemas operativos. ABSTRACT: ln this master thesis we describe an implementation proposal for an Augmentative and Alternative Communication Framework for developers, with the objective of improves the productivity and reduces the implementation times for these types of solutions. This proposal is based on a customized widgets structure that can be integrated in new applications, with the purpose of reuse common features of these applications, also allowing standardize the code structure in this kind of software development. This framework intends to provide flexibility to programmers giving them the possibility of introduce new functionalities and widgets, allowing them to test new approaches during research. The implementation based on open-source technologies, platform independent, allows the use of this toolkit in several different operating systems.
Resumo:
A interacção dos humanos com os computadores envolve uma combinação das tarefas de programação e de utilização. Nem sempre é explícita a diferença entre as duas tarefas. Introduzir comandos num programa de desenho assistido por computador é utilização ou programação numa linguagem interpretada? Modificar uma folha de cálculo com macros é utilização ou programação? Usar um “Integrated Development Environment” ou IDE para inserir dados num ficheiro é utilização (do IDE) ou programação? A escrita de um texto usando LaTeX ou HTML é utilização ou programação numa “markup language”? Recorrer a um programa de computação simbólica é utilização ou programação? Utilizar um processador de texto é utilização ou programação visual? Ao utilizador não se exige um conhecimento completo de todos os comandos, todos os menus, todos os símbolos do software que utiliza. Nem a memorização da sintaxe e de todos os pormenores de funcionamento de um programa é um atributo necessário ou sequer útil ao utilizador; a concretização desse conhecimento não assegura maior eficiência na utilização. Quando se começa, apenas algumas instruções elementares são recebidas, por vezes de um colega, de um Professor, ou obtidas recorrendo à pesquisa na Internet. Com a familiarização, o utilizador exige mais do Software que usa e de si próprio: um manual passa a ser um recurso de grande utilidade. A confiança 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 programação. Põe-se uma questão no imediato (se ninguém decidiu por si) que é a da selecção da linguagem de programação. A abordagem multiparadigma e longa experiência de utilização do C++ tornam-no atractivo para aplicações onde a eficiência se combina com a disponibilidade de estruturas de dados e algoritmos adoptados pela indústria (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++. São os pormenores, a eficiência e as capacidades do C++ que permitem a criação de software Profissional. Todos os sistemas operativos clássicos (Unix, Microsoft Windows, Linux) dispõem de compiladores, IDE, bibliotecas e são em grande parte construídos recorrendo a C e C++. Relativamente a outras linguagens, a quantidade de ferramentas disponível e o conhecimento adquirido durante décadas é difícil de ignorar. Esse conhecimento faz com que a sintaxe do C++ pareça muito maior do que o estritamente necessário e afaste potenciais interessados. A longa evolução do C++ introduziu também uma diferença no estilo muito marcada. Código dos anos 80 e 90 do século XX é frequentemente menos legível do que o que correntemente se produz. Muitos tutoriais disponíveis 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 cabeçalhos do C, quando já não são necessários. Scott Meyers afirma que o C++ é uma federação de linguagens [#scottmeyers] e por esse facto requer perspectivas de abordagem distintas de outras linguagens. Sem alguma sistematização é difícil apreciar a sua compacidade e coerência. Porém, a forma harmoniosa como as componentes sintácticas se encaixam é uma grande mais-valia do C++ só constatada com experimentação e leitura atenta. A presente monografia dirige-se a quem pretenda utilizar o C++ como ferramenta profissional de Software. Em termos de pré-requisitos Académicos, dir-se-á que um curso (1º Ciclo) de Ciência ou de Engenharia aumentará o interesse por certos aspectos mais técnicos da linguagem mas qualquer indivíduo com gosto pela experimentação tirará proveito do conteúdo. Este texto não busca a exaustividade enciclopédica na cobertura do tema. Neste texto forneço, de forma directa, uma introdução ao C++ a qual permite começar a produzir código sem os custos da dispersão de fontes e notações na recolha de informação. Antecipo assim a sua utilização nos Países de Língua Portuguesa, uma vez que os textos que encontrei são ora mais exigentes ora menos completos, frequentemente ambos.