771 |
Visualisierungs- und Interaktionskonzept zur Integration hierarchischer Daten in die HyperGridWinkler, Dominic. January 2007 (has links)
Konstanz, Univ., Bachelorarbeit, 2007.
|
772 |
Einsatz des J2EE Frameworks Jakarta StrutsHerrmann, Markus. January 2003 (has links)
Konstanz, FH, Diplomarb., 2003.
|
773 |
Interface gráfica no contexto de teoria dos jogos sob a forma de Java Apples /Caldeira, Rosane. January 2010 (has links)
Orientador: Sergio Azevedo de Oliveira / Banca: Carlos Roberto Minussi / Banca: Ivan Mathias Filho / Resumo: Na resolução de problemas de engenharia existem diversas metodologias que podem ser aplicadas. Normalmente, estas envolvem novos conceitos, as vezes inéditos em termos de aplicação como é o caso da teoria dos jogos. Por outro lado, pesquisadores vêm buscando novas técnicas para o desenvolvimento de ferramentas computacionais para o auxílio no processo ensino- aprendizado em diferentes níveis. Nesta dissertação apresenta-se um simulador computacional que apresenta uma interface gráfica, denominada ENGTJ, como proposta para o ensino de conceitos básicos da teoria dos jogos, via Web. Os conceitos relacionados com a teoria dos jogos , são apresentados sob forma de exemplos, no contexto dos jogos não-cooperativos e cooperativos, com os módulos do Jogo Dilema do Prisioneiro (JDP) e o Jogo Coalizacional entre Empresas (JCE). Estes módulos foram desenvolvidos utilizando-se a linguagem de programação Java, sob a forma de Java applets, com o auxílio do ambiente de desenvolvimento Eclipse. O processo de desenvolvimento de software baseado nos padrões de engenharia de software foi utilizado para criar a interface da aplicação, e apresenta uma série de técnicas e atividades que procuram dar suporte a definição de processos de desenvolvimento, levantamento e especificação de requisitos, projeto e testes. Como resultado, tem-se uma interface gráfica que permite ao usuário interagir através de jogos modulares referentes a teoria dos jogos, permitindo ao mesmo inferir alguns conceitos básicos abordados nesta teoria, suportada por tutoriais, geral e específicos / Abstract: In solving engineering problems there are several methodologies that can be applied. Typically, these methods involve new concepts, sometimes unprecedented in terms of application as game theory. Moreover, researchers are seeking new techniques to develop computational tools to aid in the teaching-learning at different levels. This paper presents a computational simulator that presents a graphical interface, called ENGTJ, as proposed for teaching basic concepts of game theory, through Web. The game theory concepts are presented using examples, in the context of non-cooperative games and cooperative, especially the Prisoner's Dilemma Game (JDP) and the Coalitional Games between Companies (JCE). These modules were developed using the Java programming language, under "Java applets" form with the Eclipse developing environ- ment. The software development process based on software engineering patterns was used to create an application interface combining several techniques and activities that could support the developing procedures, requirements, projects and tests. Therefore, there is a graphical in- terface that allows the user interacting with modular games referred to the game theory and the concepts approached in this work, supported by tutorials, general and specific / Mestre
|
774 |
Contrôle d'accès obligatoire pour systèmes à objets : défense en profondeur des objets Java / Mandatory access control for object systems : defense in depth for Java objectsVenelle, Benjamin 16 July 2015 (has links)
Les systèmes à objets sont présents partout dans notre quotidien. Ainsi, une vulnérabilité dans ces systèmes compromet amplement la confidentialité ou l'intégrité. Par exemple, Java est un système à objets basé sur les classes qui a été la cible de nombreuses cyber-attaques entre 2012 et 2013 au point que le département de la sécurité intérieure des Etats-Unis recommande son abandon. Dans cette thèse nous proposons de limiter les relations entre objets au moyen d’un contrôle d’accès obligatoire. Pour cela nous définissons un modèle général de système à objets supportant notamment les langages objets et à prototypes. Puis nous formalisons les relations élémentaires que nous pouvons observer et donc contrôler. Celles-ci sont la référence, l’interaction et trois types de flux (d’activité, d’information, de données). Nous proposons également une logique basée sur des automates qui permet de calculer les privilèges de chaque objet. Ainsi, nous calculons dynamiquement la politique obligatoire nécessaire pour satisfaire les objectifs de sécurité exigés. Par là même, nous résolvons d’un seul coup le calcul des politiques obligatoires et le problème d’efficacité puisque la politique obligatoire se trouve réduite. L’expérimentation propose une application aux objectifs de sécurité JAAS existants dans Java. De fait, nous avons été capables d’empêcher les malwares Java correspondant à une année de vulnérabilités au moyen de l’outil d’exploitation Metasploit. / Objects based systems are presents everywhere in our life. When such a system presents vulnerabilities, confidentiality and integrity are thus widely compromised. For example, Java is an object language authorizing many cyber-attacks between 2012 and 2013 leading the US department of homeland security to recommend its abandon. This thesis proposes to limit the relations between the objects thanks to a mandatory access control. First, a general model of objects supporting objects and prototypes languages is defined. Second, the elementary relations are formalized in order to control them. Those relations include the reference, interaction and three types of flow (activity, information and data). Automata authorize a logic that enables to compute the required mandatory policy. At the same time, the computation of the MAC policy and the efficiency are solved since the policy is reduced. Experimentations use the JAAS security objectives existing in the Java language. Thus, one year of Java vulnerabilities is prevented thanks to the Metasploit framework.
|
775 |
Vývoj webové aplikace pomocí moderních technologií / Web application development with modern technologiesIbragimov, Ahliddin January 2016 (has links)
This thesis covers the development of web applications with modern programming languages and technologies.
The objective of thesis is the research and analysis of modern technologies and subsequent selection of particular programming languages, frameworks and database for development of web application applying those techniques.
Based on analysis of modern trends I chose the following technologies: backend development using popular Spring framework based on Java EE, frontend implementation using one of the most widespread scripting languages JavaScript and its known framework AngularJS developed by Google. For data persistence I chose NoSQL database MongoDB. I provided detailed documentation of each implementation step: project definition, requirements analysis, design, implementation and testing.
|
776 |
Programação funcional usando Java / Functional programming using JavaZavaleta Gavidia, Jorge Juan January 1997 (has links)
Desde a introdução da World Wide Web para o mundo nos inícios de 1990, usando a Internet como uma rede para transferir dados, empregando uma forma de expressão chamada de Hipertexto, a qual liga as informações relacionadas e combinadas com multimídia, os Webs resultantes têm aberto novas possibilidades de expressão e comunicação. A quantidade de tráfego de dados na Web e o número de computadores ofertando informação vem crescendo dramaticamente, mas falta expressividade e qualidade interativa na Web; ainda assim, vem despertando um grande interesse instrutivo e útil. O ilimitado universo de possibilidades da Web para acessar aplicações seguras, portáveis e independentes para cada plataforma em hardware e software e que possam chegar a qualquer lugar sobre a Internet, surge a linguagem Java da Sun Microsystem [DEC 95]. A habilidade de Java para executar código sobre hosts remotos de uma maneira segura é uma necessidade crítica para muitas organizações de desenvolvedores de software e provedores de Internet na atualidade [ARN 96]. A linguagem Java é realmente valiosa para redes de ambientes distribuídos como a Web. Entretanto, Java vai mais longe deste domínio ao fornecer uma linguagem de programação de propósito geral poderosa e adequada para construir uma variedade de aplicações que não dependem das características da rede [ARN 96]. O modelo imperativo tradicional é padrão e quase universal vem tendo uma profunda influência sobre a natureza das linguagens de programação e ainda continua a tendência de sempre ter uma direção para fornecer mais e mais formas abstratas de resolver problemas, tentando mudar a simplicidade na programação com rapidez na execução de programas [FIE 88]. Parece. portanto, natural e quase inevitável o desenvolvimento em tecnologia das linguagens. Os amplos esforços gastos em desenvolver métodos rigorosos para especificar, produzir, verificar software e produtos de hardware, mas os esforços foram restringidos às linguagens convencionais. A aproximação natural de Von Neumann tem contribuído a esta falha desde a noção de um estado global que pode mudar arbitrariamente em cada passo da computação e vem sendo provado ser intuitivamente e matematicamente intratável. Esta falha tem tornado ao software o componente mais caro para muitos sistemas de computação [GLA 84]. Os primeiros passos para solucionar estas falhas foram tomadas pela programação estruturada ao trabalhar nas áreas de especificação formal, verificação de programas e na semântica formal que ainda continuam em pesquisa. O crescimento numeroso de pesquisadores têm certeza de que os problemas originam-se da aproximação fundamental à filosofia de Von Neumann e estão voltando-se para uma linguagem de um novo tipo. Uma de tais aproximações é a tomada pelas linguagens de programação funcional [PLA 93]. Num programa funcional, o resultado de uma função chamada é unicamente determinado pelos valores atuais dos argumentos da função [PLA 93]. As linguagens de programação funcional têm a vantagem que elas oferecem um uso geral das funções, o qual não esta disponível nas linguagens imperativas clássicas. Devido a ausência de efeitos colaterais, as provas de correção dos programas são mais fáceis que nas linguagens imperativas. As funções podem ser avaliadas em qualquer ordem assim como a disponibilidade total das mesmas, a nova geração de linguagens funcionais também oferecem uma elegante noção de uso amigável [PLA 93]. Os padrões e a proteção que fornecem ao usuário um acesso simples a estruturas de dados complexos, basicamente não tendo a preocupação do gerenciamento da memória, como faz a linguagem Java. O objetivo principal deste trabalho é a descrição da implementação de um Construtor de Funções Java (LispJ), usado para gerar funções Lisp em código Java utilizando a linguagem Java da Sun Microsystem como ambiente de desenvolvimento. A descrição compreende a codificação de um Interpretador Lisp da linguagem funcional LISP, e a codificação do Construtor de Funções Java visualizado através de um applet Java utilizado como interface entre o Construtor de Funções Java e o usuário sobre a Internet. / Since the introduction of the World Wide Web to the world in the beginning of the nineties, using the Internet as a network to transfer data, using a form of expression called Hypertext, which connects related and combined information with multimedia, the resulting Webs have opened new possibilities of expression and communication. The amount of data traffic in the Web and the number of computers offering information have been growing dramatically, but there is a lack of interactive expressivity and quality in the Web; nevertheless, its instructive and useful interest is growing wider. From the unlimited universe of possibilities of the Web to access safe, portable and independent applications for each platform in hardware and software and that are able to get anywhere on the Internet, there is the Java Sun Mycrosystem language [DEC 95]. Java's ability to perform code on remote hosts in a safe way is a critical need for many software developing organizations and Internet providers nowadays [ARN 96]. Java language is really valuable for network environments arranged as the Web. However, Java extends further from this domain as it provides a broad programming language that is powerful and adequate to build a variety of applications which do not depend on the characteristics of the network [ARN 96]. The prevailing traditional model is a pattern and almost universal, has had a deep influence on the nature of the programming languages and there is still a trend of one direction to provide more and more abstract ways of solving problems, trying to change the simplicity in the fast programming in programs run [FIE 88]. It seems, therefore, natural and almost inevitable the development in technology of the programming languages. Wide efforts were made to develop strict methods to specify, produce, check software and hardware products, but the efforts were restricted to conventional languages. Von Neumann's natural approximation has contributed to this gap since the notion of a global state which can change arbitrarily in each step of the computer science and has proven to be intuitively and mathematically intractable. This gap has turned the software into the most expensive component for many computing systems [GLA 84]. The first steps to solve these gaps were taken by the structured programming when working on the areas of formal specification, programs checking and the formal semantics, which are still being researched. The ever growing number of researchers are sure that the problems come from the fundamental approximation to Von Neumann's philosophy and are turning to a new kind of language. One of such approximations is the one through the functional programming languages [PLA 93]. In a functional program, the result of a called function is determined only by the present values of the function arguments [PLA 93]. The functional programming languages have the advantage of offering a general use of the functions, which is not available in the classic prevailling lan guages [PLA 93]. Due to absence of side effects, the correction tests in the programs are easier than in the prevailing languages. The functions may be evaluated in any order and so may their total disposal. The new generation of functional languages also offers an elegant notion of friendly use [PLA 93]. The patterns and protection offer the user a simple access to complex data structures, basically by not worrying about memory management, as occurs with the Java language. The main objetive of this work is the description of the implementation of a Java Functions Builder (Lisp1), used do generate Lisp functions in Java code utilizing the Java language from Sun microsystem as a developing environment. The description covers the code of the Lisp Interpreter of the LISP functional language, and the Java Functions Builder code visualized through a Java applet utilized as interface between the Java Functions Builder and the users on the Internet.
|
777 |
Programação funcional usando Java / Functional programming using JavaZavaleta Gavidia, Jorge Juan January 1997 (has links)
Desde a introdução da World Wide Web para o mundo nos inícios de 1990, usando a Internet como uma rede para transferir dados, empregando uma forma de expressão chamada de Hipertexto, a qual liga as informações relacionadas e combinadas com multimídia, os Webs resultantes têm aberto novas possibilidades de expressão e comunicação. A quantidade de tráfego de dados na Web e o número de computadores ofertando informação vem crescendo dramaticamente, mas falta expressividade e qualidade interativa na Web; ainda assim, vem despertando um grande interesse instrutivo e útil. O ilimitado universo de possibilidades da Web para acessar aplicações seguras, portáveis e independentes para cada plataforma em hardware e software e que possam chegar a qualquer lugar sobre a Internet, surge a linguagem Java da Sun Microsystem [DEC 95]. A habilidade de Java para executar código sobre hosts remotos de uma maneira segura é uma necessidade crítica para muitas organizações de desenvolvedores de software e provedores de Internet na atualidade [ARN 96]. A linguagem Java é realmente valiosa para redes de ambientes distribuídos como a Web. Entretanto, Java vai mais longe deste domínio ao fornecer uma linguagem de programação de propósito geral poderosa e adequada para construir uma variedade de aplicações que não dependem das características da rede [ARN 96]. O modelo imperativo tradicional é padrão e quase universal vem tendo uma profunda influência sobre a natureza das linguagens de programação e ainda continua a tendência de sempre ter uma direção para fornecer mais e mais formas abstratas de resolver problemas, tentando mudar a simplicidade na programação com rapidez na execução de programas [FIE 88]. Parece. portanto, natural e quase inevitável o desenvolvimento em tecnologia das linguagens. Os amplos esforços gastos em desenvolver métodos rigorosos para especificar, produzir, verificar software e produtos de hardware, mas os esforços foram restringidos às linguagens convencionais. A aproximação natural de Von Neumann tem contribuído a esta falha desde a noção de um estado global que pode mudar arbitrariamente em cada passo da computação e vem sendo provado ser intuitivamente e matematicamente intratável. Esta falha tem tornado ao software o componente mais caro para muitos sistemas de computação [GLA 84]. Os primeiros passos para solucionar estas falhas foram tomadas pela programação estruturada ao trabalhar nas áreas de especificação formal, verificação de programas e na semântica formal que ainda continuam em pesquisa. O crescimento numeroso de pesquisadores têm certeza de que os problemas originam-se da aproximação fundamental à filosofia de Von Neumann e estão voltando-se para uma linguagem de um novo tipo. Uma de tais aproximações é a tomada pelas linguagens de programação funcional [PLA 93]. Num programa funcional, o resultado de uma função chamada é unicamente determinado pelos valores atuais dos argumentos da função [PLA 93]. As linguagens de programação funcional têm a vantagem que elas oferecem um uso geral das funções, o qual não esta disponível nas linguagens imperativas clássicas. Devido a ausência de efeitos colaterais, as provas de correção dos programas são mais fáceis que nas linguagens imperativas. As funções podem ser avaliadas em qualquer ordem assim como a disponibilidade total das mesmas, a nova geração de linguagens funcionais também oferecem uma elegante noção de uso amigável [PLA 93]. Os padrões e a proteção que fornecem ao usuário um acesso simples a estruturas de dados complexos, basicamente não tendo a preocupação do gerenciamento da memória, como faz a linguagem Java. O objetivo principal deste trabalho é a descrição da implementação de um Construtor de Funções Java (LispJ), usado para gerar funções Lisp em código Java utilizando a linguagem Java da Sun Microsystem como ambiente de desenvolvimento. A descrição compreende a codificação de um Interpretador Lisp da linguagem funcional LISP, e a codificação do Construtor de Funções Java visualizado através de um applet Java utilizado como interface entre o Construtor de Funções Java e o usuário sobre a Internet. / Since the introduction of the World Wide Web to the world in the beginning of the nineties, using the Internet as a network to transfer data, using a form of expression called Hypertext, which connects related and combined information with multimedia, the resulting Webs have opened new possibilities of expression and communication. The amount of data traffic in the Web and the number of computers offering information have been growing dramatically, but there is a lack of interactive expressivity and quality in the Web; nevertheless, its instructive and useful interest is growing wider. From the unlimited universe of possibilities of the Web to access safe, portable and independent applications for each platform in hardware and software and that are able to get anywhere on the Internet, there is the Java Sun Mycrosystem language [DEC 95]. Java's ability to perform code on remote hosts in a safe way is a critical need for many software developing organizations and Internet providers nowadays [ARN 96]. Java language is really valuable for network environments arranged as the Web. However, Java extends further from this domain as it provides a broad programming language that is powerful and adequate to build a variety of applications which do not depend on the characteristics of the network [ARN 96]. The prevailing traditional model is a pattern and almost universal, has had a deep influence on the nature of the programming languages and there is still a trend of one direction to provide more and more abstract ways of solving problems, trying to change the simplicity in the fast programming in programs run [FIE 88]. It seems, therefore, natural and almost inevitable the development in technology of the programming languages. Wide efforts were made to develop strict methods to specify, produce, check software and hardware products, but the efforts were restricted to conventional languages. Von Neumann's natural approximation has contributed to this gap since the notion of a global state which can change arbitrarily in each step of the computer science and has proven to be intuitively and mathematically intractable. This gap has turned the software into the most expensive component for many computing systems [GLA 84]. The first steps to solve these gaps were taken by the structured programming when working on the areas of formal specification, programs checking and the formal semantics, which are still being researched. The ever growing number of researchers are sure that the problems come from the fundamental approximation to Von Neumann's philosophy and are turning to a new kind of language. One of such approximations is the one through the functional programming languages [PLA 93]. In a functional program, the result of a called function is determined only by the present values of the function arguments [PLA 93]. The functional programming languages have the advantage of offering a general use of the functions, which is not available in the classic prevailling lan guages [PLA 93]. Due to absence of side effects, the correction tests in the programs are easier than in the prevailing languages. The functions may be evaluated in any order and so may their total disposal. The new generation of functional languages also offers an elegant notion of friendly use [PLA 93]. The patterns and protection offer the user a simple access to complex data structures, basically by not worrying about memory management, as occurs with the Java language. The main objetive of this work is the description of the implementation of a Java Functions Builder (Lisp1), used do generate Lisp functions in Java code utilizing the Java language from Sun microsystem as a developing environment. The description covers the code of the Lisp Interpreter of the LISP functional language, and the Java Functions Builder code visualized through a Java applet utilized as interface between the Java Functions Builder and the users on the Internet.
|
778 |
SharePoints hemligheter : Ett integrationsprojekt i SiteVisionRehnberg, Daniel January 2016 (has links)
I detta projekt har SharePoint integrerats i SiteVision. Flera av SiteVision AB:s kunder har efterfrågat en möjlighet att integrera produkten med SharePoint. Microsoft tillhandahåller inga direkta API:er för SharePoints objektmodell i Java som SiteVision är skrivet i. SiteVision AB visste inte hur kunderna ville kunna arbeta med SharePoint i SiteVision och var angelägna om att ta reda på detta. Det övergripande syftet med denna rapport har varit att möjliggöra en attraktiv integration av SharePoint från SiteVision. Detta har utförts genom att undersöka vilka delar av SharePoint som SiteVision AB:s kunder vill kunna komma åt från SiteVision och hur kunderna vill kunna komma åt dessa delar i SiteVision. Undersökningen har genomförts genom kvalitativa intervjuer med några av SiteVision AB:s kunder. Undersökningen har visat att kunderna helst vill ha en integration mot SharePoints dokumenthanteringssystem. De vill ha möjligheten att lista filer från SharePoint i SiteVision utifrån en given mapp eller metadata. De vill även kunna söka efter SharePoint-filer i SiteVision. Ett internt API för kommunikation mot SharePoint i Java har konstruerats. Efter kundernas önskemål har en SiteVision-modul som listar filer utifrån en angiven mapp skapats. Dessutom har en enkel prototyp till sökmodul konstruerats. Resultaten från intervjuerna kan inte anses vara representativa för hela kundkretsen men gav en indikation om vad som skulle utvecklas först. Projektets mål är uppfyllda men modulerna behöver utvecklas vidare innan de kan lanseras. / In this thesis project, SharePoint has been integrated in SiteVision. Several customers of SiteVision AB have requested an integration of SharePoint from SiteVision. Microsoft doesn’t provide any API for Java to SharePoint object model. SiteVision AB did not know in what form the customers wanted to access SharePoint from SiteVision but was keen to find out. The overall aim with this thesis has been to make an appealing integration of SharePoint from SiteVision possible. This has been accomplished by performing a study investigating what parts of SharePoint the customers wanted to access from SiteVision and in what form they wanted to access it. The study has been performed by qualitative interviews with some of the customers of SiteVision AB. The study has shown that the customers most of all wants to integrate the document management system of SharePoint. They want to be able to view SharePoint files inside SiteVision based on a provided folder, or file meta data. They also want to search for SharePoint files in SiteVision. An internal API for communication with SharePoint in Java has been constructed. Based on the customers’ requests, a SiteVision module that lists SharePoint files based on a folder has been created. Furthermore, a simple prototype for a search module has been constructed. The results from the study cannot be considered as representative of all customers but gave an indication of what should be developed first. The overall aim has been fulfilled but the modules need additional developing before they can be released.
|
779 |
Spelprogrammering : Ett steg in i spelutvecklingsbranschenGräns Engblom, Robin January 2016 (has links)
Datorspelsbranschen är en enorm och ständigt växande bransch med väldigt många utvecklingsområden. För en programmerare kan det därför vara väldigt svårt att komma in och veta vilka delar som man behöver ha kunskap om. Den här rapporten tar upp problemet med att ta ett steg in i branschen för en programmerare genom att gå igenom viktiga delar för spelprogrammering och demonstrerar den med utveckling av ett spel med hjälp av ett ramverk. På så sätt kan man få en förståelse av de olika delarna och problemen som finns i utvecklingen av ett spel. Resultatet blev ett spel skrivet i Java med ramverket libGDX. Spelet går ut på att flera spelare ansluter till en server där man delas upp i lag. Sedan spelar man en match som består av ett antal ronder, för att vinna en rond så måste ett lag eliminera motståndarlaget med ett antal färdigheter som varje spelare kan välja innan matchen börjar. Laget som vinner flest ronder vinner matchen. / The computer game industry is a huge and constantly growing industry with a lot of different development areas. That is why it can be very hard for a pro-grammer to get in to and know what parts you should have knowledge about. This thesis addresses the problem of taking that first step into the industry for a programmer by going through important parts of game programming and dem-onstrating them by developing a game with the help of a framework. In this way you can get a better understanding of the different parts and problems that arise when developing a game. The result was a game written in Java with the framework libGDX. The game involves two or more players that connect to a server where they are split into teams. Then they play a game consisting of a set of rounds, to win a round one team has to eliminate the opposing team by using different abilities that every player can choose before the start of the game. The team with the most rounds won, wins the game.
|
780 |
Programação funcional usando Java / Functional programming using JavaZavaleta Gavidia, Jorge Juan January 1997 (has links)
Desde a introdução da World Wide Web para o mundo nos inícios de 1990, usando a Internet como uma rede para transferir dados, empregando uma forma de expressão chamada de Hipertexto, a qual liga as informações relacionadas e combinadas com multimídia, os Webs resultantes têm aberto novas possibilidades de expressão e comunicação. A quantidade de tráfego de dados na Web e o número de computadores ofertando informação vem crescendo dramaticamente, mas falta expressividade e qualidade interativa na Web; ainda assim, vem despertando um grande interesse instrutivo e útil. O ilimitado universo de possibilidades da Web para acessar aplicações seguras, portáveis e independentes para cada plataforma em hardware e software e que possam chegar a qualquer lugar sobre a Internet, surge a linguagem Java da Sun Microsystem [DEC 95]. A habilidade de Java para executar código sobre hosts remotos de uma maneira segura é uma necessidade crítica para muitas organizações de desenvolvedores de software e provedores de Internet na atualidade [ARN 96]. A linguagem Java é realmente valiosa para redes de ambientes distribuídos como a Web. Entretanto, Java vai mais longe deste domínio ao fornecer uma linguagem de programação de propósito geral poderosa e adequada para construir uma variedade de aplicações que não dependem das características da rede [ARN 96]. O modelo imperativo tradicional é padrão e quase universal vem tendo uma profunda influência sobre a natureza das linguagens de programação e ainda continua a tendência de sempre ter uma direção para fornecer mais e mais formas abstratas de resolver problemas, tentando mudar a simplicidade na programação com rapidez na execução de programas [FIE 88]. Parece. portanto, natural e quase inevitável o desenvolvimento em tecnologia das linguagens. Os amplos esforços gastos em desenvolver métodos rigorosos para especificar, produzir, verificar software e produtos de hardware, mas os esforços foram restringidos às linguagens convencionais. A aproximação natural de Von Neumann tem contribuído a esta falha desde a noção de um estado global que pode mudar arbitrariamente em cada passo da computação e vem sendo provado ser intuitivamente e matematicamente intratável. Esta falha tem tornado ao software o componente mais caro para muitos sistemas de computação [GLA 84]. Os primeiros passos para solucionar estas falhas foram tomadas pela programação estruturada ao trabalhar nas áreas de especificação formal, verificação de programas e na semântica formal que ainda continuam em pesquisa. O crescimento numeroso de pesquisadores têm certeza de que os problemas originam-se da aproximação fundamental à filosofia de Von Neumann e estão voltando-se para uma linguagem de um novo tipo. Uma de tais aproximações é a tomada pelas linguagens de programação funcional [PLA 93]. Num programa funcional, o resultado de uma função chamada é unicamente determinado pelos valores atuais dos argumentos da função [PLA 93]. As linguagens de programação funcional têm a vantagem que elas oferecem um uso geral das funções, o qual não esta disponível nas linguagens imperativas clássicas. Devido a ausência de efeitos colaterais, as provas de correção dos programas são mais fáceis que nas linguagens imperativas. As funções podem ser avaliadas em qualquer ordem assim como a disponibilidade total das mesmas, a nova geração de linguagens funcionais também oferecem uma elegante noção de uso amigável [PLA 93]. Os padrões e a proteção que fornecem ao usuário um acesso simples a estruturas de dados complexos, basicamente não tendo a preocupação do gerenciamento da memória, como faz a linguagem Java. O objetivo principal deste trabalho é a descrição da implementação de um Construtor de Funções Java (LispJ), usado para gerar funções Lisp em código Java utilizando a linguagem Java da Sun Microsystem como ambiente de desenvolvimento. A descrição compreende a codificação de um Interpretador Lisp da linguagem funcional LISP, e a codificação do Construtor de Funções Java visualizado através de um applet Java utilizado como interface entre o Construtor de Funções Java e o usuário sobre a Internet. / Since the introduction of the World Wide Web to the world in the beginning of the nineties, using the Internet as a network to transfer data, using a form of expression called Hypertext, which connects related and combined information with multimedia, the resulting Webs have opened new possibilities of expression and communication. The amount of data traffic in the Web and the number of computers offering information have been growing dramatically, but there is a lack of interactive expressivity and quality in the Web; nevertheless, its instructive and useful interest is growing wider. From the unlimited universe of possibilities of the Web to access safe, portable and independent applications for each platform in hardware and software and that are able to get anywhere on the Internet, there is the Java Sun Mycrosystem language [DEC 95]. Java's ability to perform code on remote hosts in a safe way is a critical need for many software developing organizations and Internet providers nowadays [ARN 96]. Java language is really valuable for network environments arranged as the Web. However, Java extends further from this domain as it provides a broad programming language that is powerful and adequate to build a variety of applications which do not depend on the characteristics of the network [ARN 96]. The prevailing traditional model is a pattern and almost universal, has had a deep influence on the nature of the programming languages and there is still a trend of one direction to provide more and more abstract ways of solving problems, trying to change the simplicity in the fast programming in programs run [FIE 88]. It seems, therefore, natural and almost inevitable the development in technology of the programming languages. Wide efforts were made to develop strict methods to specify, produce, check software and hardware products, but the efforts were restricted to conventional languages. Von Neumann's natural approximation has contributed to this gap since the notion of a global state which can change arbitrarily in each step of the computer science and has proven to be intuitively and mathematically intractable. This gap has turned the software into the most expensive component for many computing systems [GLA 84]. The first steps to solve these gaps were taken by the structured programming when working on the areas of formal specification, programs checking and the formal semantics, which are still being researched. The ever growing number of researchers are sure that the problems come from the fundamental approximation to Von Neumann's philosophy and are turning to a new kind of language. One of such approximations is the one through the functional programming languages [PLA 93]. In a functional program, the result of a called function is determined only by the present values of the function arguments [PLA 93]. The functional programming languages have the advantage of offering a general use of the functions, which is not available in the classic prevailling lan guages [PLA 93]. Due to absence of side effects, the correction tests in the programs are easier than in the prevailing languages. The functions may be evaluated in any order and so may their total disposal. The new generation of functional languages also offers an elegant notion of friendly use [PLA 93]. The patterns and protection offer the user a simple access to complex data structures, basically by not worrying about memory management, as occurs with the Java language. The main objetive of this work is the description of the implementation of a Java Functions Builder (Lisp1), used do generate Lisp functions in Java code utilizing the Java language from Sun microsystem as a developing environment. The description covers the code of the Lisp Interpreter of the LISP functional language, and the Java Functions Builder code visualized through a Java applet utilized as interface between the Java Functions Builder and the users on the Internet.
|
Page generated in 0.0643 seconds