998 resultados para Programação em lógica
Resumo:
O artigo apresenta uma ferramenta que auxilia na implementação de aplicações que empregam mais de uma linguagem de programação. Tais aplicações são ditas multilinguagens e quando as linguagens que as compõem representam diferentes paradigmas de programação, também são denominadas multiparadigmas. A técnica de programação multilinguagem permite que se utilize a linguagem de programação mais adequada à cada parte da aplicação. Em caso de equipes híbridas de programação podemos aproveitar o conhecimento de cada uma das equipes no uso das linguagens que irão compor a aplicação. A ferramenta descrita no artigo, implementada através de um conjunto de processos Win32, monitora e executa serviços de transferência de dados e controle entre os processos que compõem a aplicação. Através de uma interface gráfica o programador pode operá-la por meio de dois modos: desenvolvimento e execução. Dentre as áreas que poderiam se beneficiar com a a ferramenta, podemos citar a aplicação pedagógica relacionada ao ensino de paradigmas de programação, aplicações já existentes que necessitam estender-se com o emprego de outras linguagens de programação e aplicações cujos problemas envolvidos se constituem em diferentes paradigmas de programação.
Resumo:
O desenvolvimento de software complexo de grande porte é muitas vezes dificultado pela carência de ferramentas adequadas para a clara expressão das idéias dos programadores em todos os aspectos técnicos do projeto. Isto é particularmente verdadeiro quando se lida com o poder de expressão de linguagens de programação. Como os grandes programas se compõem usualmente de segmentos com características técnicas diversificadas, parece natural disponibilizar ferramentas específicas para os programadores, de forma que uma boa expressividade seja obtida no código correspondente. Para que a interface entre estes diferentes segmentos seja efetivada, torna-se viável o emprego de esquemas que facilitem a interação entre os mesmos. O artigo apresenta uma proposta de implementação de um mecanismo de troca de dados entre módulos de linguagens que compõem uma aplicação multilinguagem. O mecanismo pode também ser aplicado a linguagens oriundas de diferentes paradigmas de programação. O artigo também apresenta um pequeno exemplo completo de implementação que exercita parcialmente o ambiente proposto.
Resumo:
Dispositivos adaptativos apresentam a característica de se modificarem dinamicamente em resposta a estímulos de entrada, sem interferência de agentes externos. Eventuais necessidades de modificação de comportamento são automaticamente detectadas por estes dispositivos para, em seguida, reagirem a elas de forma espontânea. Historicamente tais dispositivos emergiram das pesquisas na área de linguagens formais e autômatos. No entanto, o formalismo suscitou aplicações em diversas outras áreas. Programas com código auto-modificável, que perderam terreno em conseqüência do advento da Engenharia de Software nos anos 70, voltaram à vida recentemente em aplicações diversas. Uma das formas de programação de código auto-modificável é a utilização de linguagens de programação especificamente projetadas para isso. Linguagens adaptativas de programação são dispositivos adaptativos que empregam uma linguagem de programação convencional como mecanismo subjacente. Com o correr de sua execução, um programa escrito em uma linguagem adaptativa exibirá um comportamento auto-modificável em decorrência da ativação de suas ações adaptativas. O artigo apresenta aspectos do projeto e implementação de um ambiente para gerenciar a execução de uma linguagem adaptativa. Com o emprego de linguagem adaptiva, um novo estilo de programação é concebido, uma vez que o seu comportamento está diretamente associado ao conjunto de regras que o define, o qual se altera à medida que o código é executado.
Resumo:
An adaptive device is made up of an underlying mechanism, for instance, an automaton, a grammar, etc., to which is added an adaptive mechanism that is responsible for allowing a dynamic modification in the structure of the underlying mechanism. Adaptive languages have the basic feature of allowing the development of programs that self-modify through adaptive actions at runtime. The conception of such languages calls for a new programming style, since the application of adaptive technology suggests a new way of thinking. The adaptive programming style may be a feasible alternate way to obtain selfmodifying consistent codes, which allow its use in modern applications for self-modifying.
Resumo:
O objetivo deste trabalho é a proposta de uma arquitetura especial para simulação lógica (AESL). As técnicas e modelos utilizados no processo de simulação lógica são brevemente revistos. É definida uma taxonomia para AESL sob a qual são analisadas diversas propostas de AESL relatadas na literatura. Uma taxonomia já existente é comparada com a proposta. A AESL definida é programável para diferentes algoritmos de simulação lógica. O detalhamento da AESL é, então, incrementado pela implementação de um algoritmo particular. Uma linguagem de simulação discreta é utilizada na construção de um modelo da arquitetura. Os resultados da simulação deste modelo permitem avaliar o desempenho da AESL e otimizar sua estrutura. Uma comparação com outras arquiteturas conclui a análise.
Resumo:
Este trabalho apresenta uma técnica de programação e controle da construção repetitiva denominada Linha de Balanço. E uma técnica, surgida na indústria fabril, onde a produção em série e em grande escala exige a organização dos métodos de produção e a racionalização do trabalho. O estudo, inicialmente, modela o trabalho de construção de unidades repetitivas, salientando os problemas de organização e administração destes empreendimentos. Num segundo momento, são apresentados os princípios teóricos da técnica com aplicações práticas da programação. Por fim, é analisada a metodologia usual de construção de conjuntos habitacionais através de um estudo de caso e, observadas as condições de aplicação da técnica da Linha de Balanço, não exigindo mudificações muito profundas na atual ação gerencial neste tipo de obra. As conclusões esboçadas confirmam as vantagens da técnica da Linha de Balanço para estes empreendimentos e propõem a sua utilização na organização do trabalho nos canteiros repetitivos.
Resumo:
As técnicas que formam o campo da Descoberta de Conhecimento em Bases de Dados (DCBD) surgiram devido à necessidade de se tratar grandes volumes de dados. O processo completo de DCBD envolve um elevado grau de subjetividade e de trabalho não totalmente automatizado. Podemos dizer que a fase mais automatizada é a de Mineração de Dados (MD). Uma importante técnica para extração de conhecimentosa partir de dados é a Programação Lógica Indutiva (PLI), que se aplica a tarefas de classificação, induzindo conhecimento na forma da lógica de primeira ordem. A PLI tem demonstrado as vantagens de seu aparato de aprendizado em relação a outras abordagens, como por exemplo, aquelas baseadas em aprendizado proposicional Os seus algorítmos de aprendizado apresentam alta expressividade, porém sofrem com a grande complexidade de seus processos, principalmente o teste de corbertura das variáveis. Por outro lado, as Redes Neurais Artificiais (RNs) introduzem um ótimo desempenho devido à sua natureza paralela. às RNs é que geralmente são "caixas pretas", o que torna difícil a obtenção de um interpretação razoável da estrutura geral da rede na forma de construções lógicas de fácil compreensão Várias abordagens híbridas simbólico-conexionistas (por exemplo, o MNC MAC 890 , KBANN SHA 94 , TOW 94 e o sistema INSS OSO 98 têm sido apresentadas para lidar com este problema, permitindo o aprendizado de conhecimento simbólico através d euma RN. Entretanto, estas abordagens ainda lidam com representações atributo-valor. Neste trabalho é apresentado um modelo que combina a expressividade obtida pela PLI com o desempenho de uma rede neural: A FOLONET (First Order Neural Network).
Resumo:
Este trabalho apresenta um método para detectar falhas no funcionamento de máquinas rotativas baseado em alterações no padrão de vibração do sistema e no diagnóstico da condição de operação, por Lógica Fuzzy. As modificações ocorridas são analisadas e servem como parâmetros para predizer falhas incipientes bem como a evolução destas na condição de operação, possibilitando tarefas de manutenção preditiva. Utiliza-se uma estrutura mecânica denominada de Sistema Rotativo (Figura 1), apropriada para as simulações das falhas. Faz-se a aquisição de dados de vibração da máquina usando-se um acelerômetro em chip biaxial de baixa potência. As saídas são lidas diretamente por um contador microprocessador não requerendo um conversor A/D. Um sistema de desenvolvimento para processamento digital de sinais, baseado no microprocessador TMS320C25, o Psi25, é empregado na aquisição dos sinais de vibração (*.dat), do Sistema Rotativo. Os arquivos *.dat são processados através da ferramenta matemática computacional Matlab 5 e do programa SPTOOL. Estabelece-se o padrão de vibração, denominado assinatura espectral do Sistema Rotativo (Figura 2) Os dados são analisados pelo sistema especialista Fuzzy, devidamente calibrado para o processo em questão. São considerados, como parâmetros para a diferenciação e tomada de decisão no diagnóstico do estado de funcionamento pelo sistema especialista, a freqüência de rotação do eixo-volante e as amplitudes de vibração inerentes a cada situação de avaria. As falhas inseridas neste trabalho são desbalanceamentos no eixovolante (Figura 1), através da inserção de elementos desbalanceadores. A relação de massa entre o volante e o menor elemento desbalanceador é de 1:10000. Tomando-se como alusão o conhecimento de especialistas no que se refere a situações normais de funcionamento e conseqüências danosas, utilizam-se elementos de diferentes massas para inserir falhas e diagnosticar o estado de funcionamento pelo sistema fuzzy, que apresenta o diagnóstico de formas qualitativa: normal; falha incipiente; manutenção e perigo e quantitativa, sendo desta maneira possível a detecção e o acompanhamento da evolução da falha.
Resumo:
Este texto apresenta um novo modelo multiparadigma orientado ao desenvolvimento de software distribuído, denominado Holoparadigma. O Holoparadigma possui uma semântica simples e distribuída. Sendo assim, estimula a modelagem subliminar da distribuição e sua exploração automática. A proposta é baseada em estudos relacionados com modelos multiparadigma, arquitetura de software, sistemas blackboard, sistemas distribuídos, mobilidade e grupos. Inicialmente, o texto descreve o modelo. Logo após, é apresentada a Hololinguagem, uma linguagem de programação que implementa os conceitos propostos pelo Holoparadigma. A linguagem integra os paradigmas em lógica, imperativo e orientado a objetos. Além disso, utiliza um modelo de coordenação que suporta invocações implícitas (blackboard) e explícitas (mensagens). A Hololinguagem suporta ainda, concorrência, modularidade, mobilidade e encapsulamento de blackboards em tipos abstratos de dados. Finalmente, o texto descreve a implementação da Holoplataforma, ou seja, uma plataforma de desenvolvimento e execução para a Hololinguagem. A Holoplataforma é composta de três partes: uma ferramenta de conversão de programas da Hololinguagem para Java (ferramenta HoloJava), um ambiente de desenvolvimento integrado (ambiente HoloEnv) e um plataforma de execução distribuída (plataforma DHolo).
Resumo:
O processo de programação de recursos é parte do planejamento e controle da produção e possui grande importância para o desempenho de empreendimentos de construção. Constitui-se numa atividade multifuncional, envolvendo a direção da empresa e seus departamentos de marketing, finanças, recursos humanos e suprimentos. Sua ineficácia tem sido identificada como responsável por muitos dos problemas relacionados à dilatação do prazo de execução do empreendimento, ao desperdício de recursos e à baixa produtividade da mão-de-obra. Considerando que o desempenho da programação de recursos está fortemente relacionado à quantidade e qualidade das informações que a suportam, o presente trabalho tem como objetivo a proposição de um método de intervenção direcionado ao sistema de informação deste processo. O método proposto divide-se em duas etapas: o diagnóstico inicial do sistema de informações e, posteriormente, o planejamento e implantação de ações de melhoria. O método foi aplicado em estudos de caso realizados em empresas de pequeno porte, nas quais foi implementada a programação formal de recursos, sendo constatada a mudança de atitude dos funcionários frente aos processos de planejamento da produção e programação de recursos.
Resumo:
A presente Dissertação propõe uma biblioteca de comunicação de alto desempenho, baseada em troca de mensagens, especificamente projetada para explorar eficientemente as potencialidades da tecnologia SCI (Scalable Coherent Interface). No âmago da referida biblioteca, a qual se denominou DECK/SCI, acham-se três protocolos de comunicação distintos: um protocolo de baixa latência e mínimo overhead, especializado na troca de mensagens pequenas; um protocolo de propósito geral; e um protocolo de comunicação que emprega uma técnica de zero-copy, também idealizada neste Trabalho, no intuito de elevar a máxima largura de banda alcançável durante a transmissão de mensagens grandes. As pesquisas desenvolvidas no decurso da Dissertação que se lhe apresenta têm por mister proporcionar um ambiente para o desenvolvimento de aplicações paralelas, que demandam alto desempenho computacional, em clusters que se utilizam da tecnologia SCI como rede de comunicação. A grande motivação para os esforços envidados reside na consolidação dos clusters como arquiteturas, a um só tempo, tecnologicamente comparáveis às máquinas paralelas dedicadas, e economicamente viáveis. A interface de programação exportada pelo DECK/SCI aos usuários abarca o mesmo conjunto de primitivas da biblioteca DECK (Distributed Execution Communication Kernel), concebida originalmente com vistas à consecução de alto desempenho sobre a tecnologia Myrinet. Os resultados auferidos com o uso do DECK/SCI revelam a eficiência dos mecanismos projetados, e a utilização profícua das características de alto desempenho intrínsecas da rede SCI, haja visto que se obteve uma performance muito próxima dos limites tecnológicos impostos pela arquitetura subjacente. Outrossim, a execução de uma clássica aplicação paralela, para fins de validação, testemunha que as primitivas e abstrações fornecidas pelo DECK/SCI mantêm estritamente a mesma semântica da interface de programação do original DECK.
Resumo:
Este trabalho descreve a aplicação da Programação Genética, uma técnica de Computação Evolucionária, ao problema da Síntese de Fala automática. A Programação Genética utiliza as técnicas da evolução humana para descobrir programas bem adaptados a um problema específico. Estes programas, compostos de instruções, variáveis, constantes e outros elementos que compõe uma linguagem de programação, são evoluídos ao longo de um conjunto de gerações. A Síntese de Fala, consiste na geração automática das formas de ondas sonoras a partir de um texto escrito. Uma das atividades mais importantes, é realizada através da conversão de palavras e letras para os sons da fala elementares (fonemas). Muitos sistemas de síntese são implementados através de regras fixas, escritas por programadores humanos. Um dos mais conhecidos sistemas de síntese é o FESTIVAL, desenvolvido pela Universidade de Edimburgh, usando a linguagem de programação funcional LISP e um número fixo de regras. Neste trabalho, nós exploramos a possibilidade da aplicação do paradigma da Programação Genética, para evoluir automaticamente regras que serão adotadas para implementação do idioma Português na ferramenta FESTIVAL, desenvolvido no projeto SPOLTECH (CNPq – NSF cooperação entre UFRGS e Universidade do Colorado). A modelagem do problema, consiste na definição das regras de pronúncia do Português Brasileiro, que a implementação do sistema FESTIVAL pronuncia erradamente, já que o mesmo foi implementado primariamente para o idioma Inglês. A partir destas regras, o sistema de Programação Genética, desenvolvido neste trabalho, evolui programas que constituem boas soluções para a conversão de letras para fonemas. A descrição dos resultados obtidos, cobre detalhes sobre a evolução das soluções, complexidade e regras implementadas, representadas pelas soluções mais bem adaptadas; mostrando que a Programação Genética, apesar de ser complexa, é bastante promissora.
Resumo:
O presente trabalho, inserido na área de Planejamento, Programação e Controle da Engenharia de Produção, aborda especificamente as questões ligadas à gestão da capacidade produtiva, desenvolvendo um modelo sistêmico voltado a unidades de tratamento manual de objetos postais, os chamados Centros de Triagem. A partir do levantamento de um arcabouço teórico que fundamenta a proposta e da realização de estudos e trabalhos práticos efetuados pelo autor no Centro de Triagem de Porto Alegre, Rio Grande do Sul, os diversos níveis de planejamento, programação e controle de capacidade produtiva são discutidos e encadeados em uma seqüência lógica de entradas e saídas de informações fundamentais para a gestão dessas unidades operacionais. Dessa maneira, uma série de conceitos tradicionais de Engenharia de Produção foram adaptados à realidade de sistemas postais, desenvolvendo, dessa maneira, um método de gestão de capacidade produtiva customizada ao escopo do estudo. Embora o resultado prático do trabalho seja de utilidade específica para a gestão de Centros de Triagem manuais de carga postal, os conceitos discutidos e mesmo o modelo desenvolvido podem ser facilmente adaptados a outras unidades operacionais de correios e de outras indústrias, em especial as de operações de serviços.
Resumo:
O tema central deste trabalho é o Planejamento, Programação e Controle da Produção na indústria, com o auxílio de uma ferramenta computacional, do tipo Finite Capacity Schedule (FCS). No Brasil, essa categoria de software é denominada, genericamente, por Sistemas de Planejamento Fino de Produção ou de Capacidade Finita. Alinhado com as tendências mundiais e a vantagem de menores investimentos em hardware, o sistema escolhido é compatível com a operação em microcomputadores. Na primeira parte do trabalho, o assunto é tratado de forma geral, quando se pretende caraterizar amplamente o problema da programação da produção, as dificuldades na sua execução, as soluções existentes e suas limitações. A segunda parte do trabalho discute, detalhadamente, os métodos tradicionais de planejamento de materiais e capacidade. A revisão bibliográfica se encerra com uma apresentação dos sistemas FCS e sua classificação. A terceira parte trata da descrição, ensaios e avaliação da programação gerada por um software de Planejamento Fino de Produção determinístico, baseado na lógica de simulação computacional com regras de decisão. Embora a avaliação esteja limitada ao software utilizado, a análise ainda vai procurar identificar as diferenças fundamentais entre os resultados da programação de Capacidade Finita e a convencional, representada pelos sistemas da categoria MRPII ou Planejamento dos Recursos de Manufatura (Manufacturing Resources Planning). As lógicas dos sistemas MRPII e de Capacidade Finita são discutidas na revisão bibliográfica, enquanto que, para o software empregado no trabalho, ainda há um capítulo específico tratando da sua descrição, fundamentos, software house, hardware necessário e outras informações relevantes. Os ensaios serão implementados com o objetivo de analisar o sistema FCS como ferramenta de planejamento e de programação de produção. No caso, uma fração de um processo produtivo será modelada no sistema, através do qual serão gerados planos de produção que serão confrontados com a programação usual e com o comportamento real dos recursos envolvidos. Os ensaios serão realizados numa das unidades pertencentes a uma empresa transnacional de grande porte, que atua no ramo de pneumáticos. Por último, são apresentadas as conclusões gerais, recomendações na aplicação do sistema estudado e sugestões para futuras pesquisas relacionadas com o assunto.
Resumo:
Este trabalho realiza um estudo sobre a criação de sistemas tempo-real usando orientação a objetos, com enfoque no mapeamento de especificações para linguagens de programação. O paradigma de orientação a objetos tem sido usado nas diferentes fases relacionadas com o desenvolvimento de sistemas tempo-real, variando desde a modelagem até o ambiente de programação e execução, mas atualmente estas iniciativas ainda focam etapas isoladas do ciclo de desenvolvimento. O objetivo deste trabalho é o de preencher esta lacuna, propondo um mapeamento entre uma metodologia ou ferramenta de análise e projeto de sistemas tempo-real orientados a objetos e uma linguagem ou ambiente de desenvolvimento baseado no paradigma de orientação a objetos que possua suporte para atender às restrições temporais especificadas. O mapeamento proposto foi desenvolvido utilizando estudos de caso clássicos em aplicações tempo-real que foram baseados em dois recentes padrões. O primeiro é o emergente padrão Real-Time UML, que visa realizar a especificação de requisitos temporais utilizando diagramas UML com extensões que os representem. O outro padrão é o Real-Time Specification for Java, que consiste de uma interface de programação (API) para desenvolvimento de aplicações tempo-real com a linguagem Java. O relacionamento entre stereotypes e tags usados para representar restrições temporais em diagramas UML e o código Java correspondente é explicado e um sumário da estratégia de mapeamento é discutido.