Spelling suggestions: "subject:"erientation to objects"" "subject:"d'orientation to objects""
1 |
Framework para construção de sistemas supervisórios em dispositivos móveisPerozzo, Reiner Franthesco January 2007 (has links)
Sistemas supervisórios são sistemas computacionais que permitem a monitoração de informações de processos produtivos ou de dispositivos de automação e de plantas industriais. Neste trabalho é proposto um framework para construção de tais sistemas, direcionada a dispositivos móveis, tais como Personal Digital Assistants (PDAs), telefones celulares e computadores de bolso. O framework proposto define uma arquitetura que é implementada gerando sistemas supervisórios com três características principais: (i) as telas de supervisão são construídas com base em um modelo orientado a objetos que utiliza conceitos da área da aplicação, mapeando o mundo real para um modelo computacional; (ii) o projeto de sistemas supervisórios apresenta flexibilidade com relação aos recursos computacionais disponíveis, oferecendo opções para armazenamento local ou remoto de dados multimídia, com o objetivo de não sobrecarregar os dispositivos móveis onde são executados; (iii) os sistemas supervisórios são capazes de se adaptarem dinamicamente às variações na Qualidade de Serviços (QoS) oferecidos pela infra-estrutura de comunicação, ajustando as suas telas gráficas em função de uma especificação de requisitos definidos em tempo de projeto e do nível de QoS obtido na rede em tempo de execução. Duas ferramentas computacionais são propostas e desenvolvidas no âmbito deste trabalho: (i) a primeira responsável pelo ambiente de desenvolvimento dos projetos de sistemas supervisórios, que resulta na geração automática de código em linguagem Java, correspondente à aplicação de supervisão; (ii) a segunda é responsável pela adaptação de mensagens e comunicação de dados entre as aplicações de supervisão projetadas e outros sistemas supervisórios e de controle, disponíveis no mercado. Os conceitos propostos neste trabalho foram validados através de três estudos de caso descritos na presente dissertação. / Supervisory systems are computational systems which allow information monitoring of production processes or automation and technical plant devices. This paper proposes a framework for building supervisory systems, targeted to mobile devices, such as Personal Digital Assistants (PDAs), cell phones and Pocket PCs. The proposed framework allows the development of supervisory systems with three main characteristics: (i) supervision screens, which graphically depict the technical plant, are built using an object oriented model that uses concepts of the application area, allowing a direct mapping of real world concepts, such as automation devices to a computational model; (ii) the supervisory systems project presents flexibility about the available computational resources, offering options for local or remote storing of multimedia and graphical data, with the purpose of not overloading the mobile devices where they are executed; (iii) the supervisory systems runtime environment can dynamically adapt to variations in the Quality of Services (QoS) offered by the communication infrastructure, adjusting their graphic displays by comparing required and offered QoS. Two computational tools are proposed and developed in this work: (i) the first one supports the development of supervisory systems and allows, from an object-oriented model of the application, an automatic code generation - in Java language - of the supervision application; (ii) the second one is responsible for the online adaptation of messages and data communication among the projected supervision applications and other control and supervisory systems. The proposed concepts are validated through three case studies described in the present dissertation.
|
2 |
Framework para construção de sistemas supervisórios em dispositivos móveisPerozzo, Reiner Franthesco January 2007 (has links)
Sistemas supervisórios são sistemas computacionais que permitem a monitoração de informações de processos produtivos ou de dispositivos de automação e de plantas industriais. Neste trabalho é proposto um framework para construção de tais sistemas, direcionada a dispositivos móveis, tais como Personal Digital Assistants (PDAs), telefones celulares e computadores de bolso. O framework proposto define uma arquitetura que é implementada gerando sistemas supervisórios com três características principais: (i) as telas de supervisão são construídas com base em um modelo orientado a objetos que utiliza conceitos da área da aplicação, mapeando o mundo real para um modelo computacional; (ii) o projeto de sistemas supervisórios apresenta flexibilidade com relação aos recursos computacionais disponíveis, oferecendo opções para armazenamento local ou remoto de dados multimídia, com o objetivo de não sobrecarregar os dispositivos móveis onde são executados; (iii) os sistemas supervisórios são capazes de se adaptarem dinamicamente às variações na Qualidade de Serviços (QoS) oferecidos pela infra-estrutura de comunicação, ajustando as suas telas gráficas em função de uma especificação de requisitos definidos em tempo de projeto e do nível de QoS obtido na rede em tempo de execução. Duas ferramentas computacionais são propostas e desenvolvidas no âmbito deste trabalho: (i) a primeira responsável pelo ambiente de desenvolvimento dos projetos de sistemas supervisórios, que resulta na geração automática de código em linguagem Java, correspondente à aplicação de supervisão; (ii) a segunda é responsável pela adaptação de mensagens e comunicação de dados entre as aplicações de supervisão projetadas e outros sistemas supervisórios e de controle, disponíveis no mercado. Os conceitos propostos neste trabalho foram validados através de três estudos de caso descritos na presente dissertação. / Supervisory systems are computational systems which allow information monitoring of production processes or automation and technical plant devices. This paper proposes a framework for building supervisory systems, targeted to mobile devices, such as Personal Digital Assistants (PDAs), cell phones and Pocket PCs. The proposed framework allows the development of supervisory systems with three main characteristics: (i) supervision screens, which graphically depict the technical plant, are built using an object oriented model that uses concepts of the application area, allowing a direct mapping of real world concepts, such as automation devices to a computational model; (ii) the supervisory systems project presents flexibility about the available computational resources, offering options for local or remote storing of multimedia and graphical data, with the purpose of not overloading the mobile devices where they are executed; (iii) the supervisory systems runtime environment can dynamically adapt to variations in the Quality of Services (QoS) offered by the communication infrastructure, adjusting their graphic displays by comparing required and offered QoS. Two computational tools are proposed and developed in this work: (i) the first one supports the development of supervisory systems and allows, from an object-oriented model of the application, an automatic code generation - in Java language - of the supervision application; (ii) the second one is responsible for the online adaptation of messages and data communication among the projected supervision applications and other control and supervisory systems. The proposed concepts are validated through three case studies described in the present dissertation.
|
3 |
Framework para construção de sistemas supervisórios em dispositivos móveisPerozzo, Reiner Franthesco January 2007 (has links)
Sistemas supervisórios são sistemas computacionais que permitem a monitoração de informações de processos produtivos ou de dispositivos de automação e de plantas industriais. Neste trabalho é proposto um framework para construção de tais sistemas, direcionada a dispositivos móveis, tais como Personal Digital Assistants (PDAs), telefones celulares e computadores de bolso. O framework proposto define uma arquitetura que é implementada gerando sistemas supervisórios com três características principais: (i) as telas de supervisão são construídas com base em um modelo orientado a objetos que utiliza conceitos da área da aplicação, mapeando o mundo real para um modelo computacional; (ii) o projeto de sistemas supervisórios apresenta flexibilidade com relação aos recursos computacionais disponíveis, oferecendo opções para armazenamento local ou remoto de dados multimídia, com o objetivo de não sobrecarregar os dispositivos móveis onde são executados; (iii) os sistemas supervisórios são capazes de se adaptarem dinamicamente às variações na Qualidade de Serviços (QoS) oferecidos pela infra-estrutura de comunicação, ajustando as suas telas gráficas em função de uma especificação de requisitos definidos em tempo de projeto e do nível de QoS obtido na rede em tempo de execução. Duas ferramentas computacionais são propostas e desenvolvidas no âmbito deste trabalho: (i) a primeira responsável pelo ambiente de desenvolvimento dos projetos de sistemas supervisórios, que resulta na geração automática de código em linguagem Java, correspondente à aplicação de supervisão; (ii) a segunda é responsável pela adaptação de mensagens e comunicação de dados entre as aplicações de supervisão projetadas e outros sistemas supervisórios e de controle, disponíveis no mercado. Os conceitos propostos neste trabalho foram validados através de três estudos de caso descritos na presente dissertação. / Supervisory systems are computational systems which allow information monitoring of production processes or automation and technical plant devices. This paper proposes a framework for building supervisory systems, targeted to mobile devices, such as Personal Digital Assistants (PDAs), cell phones and Pocket PCs. The proposed framework allows the development of supervisory systems with three main characteristics: (i) supervision screens, which graphically depict the technical plant, are built using an object oriented model that uses concepts of the application area, allowing a direct mapping of real world concepts, such as automation devices to a computational model; (ii) the supervisory systems project presents flexibility about the available computational resources, offering options for local or remote storing of multimedia and graphical data, with the purpose of not overloading the mobile devices where they are executed; (iii) the supervisory systems runtime environment can dynamically adapt to variations in the Quality of Services (QoS) offered by the communication infrastructure, adjusting their graphic displays by comparing required and offered QoS. Two computational tools are proposed and developed in this work: (i) the first one supports the development of supervisory systems and allows, from an object-oriented model of the application, an automatic code generation - in Java language - of the supervision application; (ii) the second one is responsible for the online adaptation of messages and data communication among the projected supervision applications and other control and supervisory systems. The proposed concepts are validated through three case studies described in the present dissertation.
|
4 |
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.
|
5 |
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.
|
6 |
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.1637 seconds