Pablo Valério Polônia. Um estudo da linguagem de programação EcmaScript

Tamanho: px
Começar a partir da página:

Download "Pablo Valério Polônia. Um estudo da linguagem de programação EcmaScript"

Transcrição

1 Pablo Valério Polônia Um estudo da linguagem de programação EcmaScript 25 de Novembro de 2007

2 Pablo Valério Polônia Um estudo da linguagem de programação EcmaScript Orientador: Luiz Fernando Bier Melgarejo 25 de Novembro de 2007

3 Um estudo da linguagem de programação EcmaScript Trabalho de conclusão de curso apresentado como parte dos requisitos para obtenção do grau de Bacharel em Ciência da Computação. Prof. Luiz Fernando Bier Melgarejo Orientador Banca Examinadora Prof. Dr. José Mazzucco Jr. Prof. Dr. Rosvelter Coelho da Costa

4 Sumário 1 Introdução p Motivação p Objetivo p. 5 2 Histórico p Especificação da linguagem p Confusões ocasionadas pela escolha do nome p. 7 3 Estado da arte p Ambientes Hospedeiros p Interpretadores, tradutores e máquinas virtuais p A nova especificação do EcmaScript p Características gerais da linguagem p Tipagem dinâmica p Dinamismo p Gerenciamento de memória p Tipos de dados da linguagem p Tipos primitivos p Objetos p Wrappers p Funções p. 13

5 6.1 Funções tratadas como objetos p Funções aninhadas p Closures p Orientação a objetos p Conceitos de OO sob a perspectiva tradicional p Classes p Objetos p Herança p Prototipação p O modelo de prototipação do EcmaScript p Objetos p Criando objetos p Propriedades p Métodos p Encapsulamento p Protótipos e Herança p Simulando classes com meta-programação p O framework Prototype p Outras funcionalidades do framework p. 22 Referências Bibliográficas p. 23

6 5 1 Introdução O EcmaScript popularmente conhecido por uma de suas implementações, o JavaScript, é uma linguagem muito popular pois praticamente todo computador pessoal possuí um navegador web que a suporta[1]. Por alguns motivos que serão explicados no decorrer deste trabalho ela é também muito mal compreendida[2] e tem aspectos muito interessantes que muitas vezes são ignorados ou desconhecidos pelos desenvolvedores. 1.1 Motivação O interesse pela linguagem tem crescido nos últimos anos devido ao surgimento de aplicações web que incorporam funcionalidades antes nunca vistas neste contexto (Rich Web Applications)[3]. Para responder a esta demanda, novas tecnologias diretamente relacionadas com o ECMAScript tem sido criadas, como o AJAX(Asynchronous JavaScript and XML)[4] que facilita o desenvolvimento de aplicações mais interativas e eficientes e a ferramenta Google Gears[5] que permite que uma aplicação web execute sem precisar de uma conexão com a Internet, entre outras. 1.2 Objetivo Descrever de forma clara e sucinta o histórico e aspectos gerais da linguagem, focando no paradigma utilizado de orientação a objetos conhecido como prototipação. Este trabalho deverá auxiliar como fonte de pesquisa em trabalhos futuros de implementação de aplicações web.

7 6 2 Histórico Em meados de 1995, Brendan Eich que trabalhava para a Netscape estudava uma linguagem para se comunicar com o navegador, com a qual seria possível tornar as páginas mais dinâmicas. Na época utilizar somente Java era uma alternativa, mas a idéia era que a linguagem fosse mais simples, para que pessoas sem muita experiência em programação também pudessem desenvolver e executar seus programas de forma rápida e simples, para ele "Criação de conteúdo hipermídia não deveria ser algo tão complicado e obscuro"[6]. Por fim ficou decidido que a nova linguagem deveria se parecer sintaticamente com Java, mas semanticamente semelhante a linguagens com verificação dinâmica de tipos como Hyper- Talk, DBase e Self [7]. Inicialmente chamada de Mocha, foi integrada ao navegador Netscape Navigator 2.0 em Setembro de 1995 onde era chamada de LiveScript, em Dezembro do mesmo ano foi renomeado para JavaScript em um anúncio conjunto entre a Sun e a Netscape[8]. Posteriormente foi criada uma especificação para a linguagem, surgindo outras implementações para esta especificação como o JScript[9] da Microsoft incluído na versão 3.0 do Internet Explorer, e o ActionScript [10] da Adobe. Atualmente pelo menos uma versão da especificação do ECMAScript é suportada pelos navegadores web mais utilizados[1].

8 7 2.1 Especificação da linguagem Em 1996 a Netscape enviou o JavaScript para a Ecma International para o desenvolvimento de uma especificação padronizada para a linguagem, o padrão chamado de ECMA-262[11] ficou pronto em Junho de 1997 e a linguagem especificada foi chamada de EcmaScript. No decorrer dos anos novas especificações surgiram: A ECMA-290[12] criada em Dezembro de 1999, entre as mudanças estão o tratamento de exceções e suporte nativo a expressões regulares. A ECMA-357[13] divulgada em Junho de 2004 conhecido por E4X que adiciona suporte nativo a manipulação de dados no formato XML. Atualmente está sendo desenvolvida a quarta edição[14] da especificação que pretende mudar muito a linguagem e que tem previsão de conclusão em Confusões ocasionadas pela escolha do nome JavaScript é o nome de uma implementação realizada pela Netscape da especificação da linguagem ECMAScript, os dois nomes ainda são muito confundidos. Outro fator de confusão é que o nome JavaScript a vincula com o Java, na realidade o nome JavaScript foi dado como estratégia de propaganda devido as duas tecnologias terem sido integradas no navegador Netscape em um curto espaço de tempo. A idéia era que o nome mostrasse que as duas tecnologias se complementavam. O impacto negativo deste nome é que ele pode levar a idéias errôneas, como de que o JavaScript é um um produto da Sun Microsystems ou uma linguagem de alguma forma inferior ao Java[2].

9 8 3 Estado da arte Figura 3.1: Relacionamento entre as tecnologias ligadas ao EcmaScript [15] Losango: Uma linguagem que implementa a especificação EcmaScript. Elipse Verde: Interpretador ou máquina virtual. Retângulo arredondado: Aplicativo. 1 Área pontilhada: Empresa responsável pelo desenvolvimento. Nuvem prateada: Linguagem de implementação. 1 OBS: A justificativa dos casos onde a linguagem está ligada diretamente ao aplicativo é que o próprio aplicativo tem um interpretador embutido, como é o caso do Silverlight.

10 9 3.1 Ambientes Hospedeiros Segundo a especificação, a linguagem não foi criada para ser computacionalmente autosuficiente[11], por exemplo não existe um mecanismo nativo para escrever um texto na tela. A linguagem deve ser integrada a um ambiente hospedeiro, sendo que o ambiente fornece os objetos que poderão ser manipulados, por exemplo o ambiente pode fornecer um objeto que represente a tela do usuário e que possa receber mensagens para escrever na mesma. O primeiro, e o mais comum ambiente para o EcmaScript é o navegador web, de fato a linguagem foi criada para manipular objetos do navegador, tais como componentes gráficos da página ou informações do histórico e favoritos. Porém a linguagem não está restrita ao ambiente do navegador, como mostra a figura 3. Outros ambientes podem ser utilizados como o servidor web Apache ou o aplicativo Adobe Photoshop criado para edição de imagens de rastreio, basta que possuam uma forma de interpretar a linguagem e que forneçam os objetos necessários para tornar esta integração útil. 3.2 Interpretadores, tradutores e máquinas virtuais A linguagem foi concebido para ser interpretada, linguagens interpretadas tem seu código fonte submetido a outro programa que o analisa e depois executa, este programa é denominado interpretador.[16] O SpiderMonkey[17] foi o primeiro interpretador de JavaScript criado, desenvolvido em C, ele foi integrado as primeiras versões do Netscape e atualmente ao Mozilla Firefox. O Rhino[18], é um interpretador desenvolvido em Java, ele vem distribuído com a versão 6 da máquina Java, o que permite que código JavaScript possa ser inserido em código Java e depois executado. Outras linguagens também possuem formas de integração com o EcmaScript, conforme a figura 3 temos os tradutores Scheme2Js que gera código em JavaScript com base em um código em Scheme, o ParentScript para Lisp e o RubyJS para Ruby. Atualmente a Adobe e a Mozilla trabalham em conjunto em um projeto chamado Tamarim[19], uma máquina virtual de código aberto utilizada atualmente para o ActionScript no Flash 9, e que prentende ser integrado com o SpiderMonkey e utilizada na próxima versão do EcmaScript.

11 10 O Tamarim pretende melhorar a performance da execução dos programas escritos em EcmaScript, sendo que um dos objetivos do projeto é criar um compilador Just in Time que converta bytecode EcmaScript em instruções de arquiteturas nativas tais como o IA A nova especificação do EcmaScript Prevista para 2008, a quarta edição da especificação EcmaScript (ES4)[14] pretende trazer profundas mudanças a linguagem, tais como: Suporte nativo a classes e interfaces. Sistema de pacotes. Definição e verificação estática opcional de tipos. Tipos parametrizáveis. Apesar de ser muito diferente a quarta versão será compatível com a versão três, o que possibilita uma adoção muito mais rápida do novo padrão.

12 11 4 Características gerais da linguagem 4.1 Tipagem dinâmica Linguagens dinamicamente tipadas são aquelas onde a verificação de tipos do programa ocorre em tempo de execução, o que difere da tipagem estática onde o tipo é determinado em tempo de compilação[20]. A escolha da verificação dinâmica de tipos implica que o tipo de um dado pode se alterar com o tempo durante a execução do programa, enquanto que na verificação estática ocorre erro de compilação se uma variável for associada a um tipo diferente da qual foi declarada. 4.2 Dinamismo O termo linguagem dinâmica se refere a uma classe de linguagens de programação que compartilham determinadas características em tempo de execução que só estão presentes em linguagens estáticas em tempo de compilação, que são verificação dinâmica de tipos e modificação de código em tempo de execução[21]. Tais características podem ser simuladas na compilação, mas com muito mais complexidade de implementação do que na interpretação. 4.3 Gerenciamento de memória O gerenciamento de memória é transparente para o programador, o processo de liberação de memória é realizado automaticamente via coletor de lixo[11].

13 12 5 Tipos de dados da linguagem 5.1 Tipos primitivos Um tipo primitivo é um membro dos tipos de mais baixo nível da linguagem, que são: Boolean: Valores lógicos booleanos. Number: Números inteiros e de ponto flutuante. String: Texto. Undefined: Associado por padrão quando uma variável não foi inicializada ou declarada[22]. Null: Representa a ausência de valor, ou o objeto nulo[11]. A passagem de parâmetros é feita por valor(cópia) para os tipos primitivos. 5.2 Objetos Um objeto é uma estrutura que contém propriedades, cada propriedade tem um nome único e está associada a um tipo primitivo ou objeto. A linguagem provê objetos básicos para manipulação de datas, textos e expressões regulares, outros objetos podem ser criados pelo programador ou fornecidos pelo ambiente hospedeiro. A passagem de parâmetros é feita por referência no caso dos objetos. 5.3 Wrappers Os tipos primitivos podem ser tratados como objetos, isto acontece porque a linguagem tem suporte a conversão automática de tipos primitivos em objetos que os encapsulam(wrappers)[22].

14 13 6 Funções Uma função representa a definição de uma computação. No código abaixo definimos uma função e a invocamos passando parâmetros para ela: Listing 6.1: Exemplo de função function soma (x, y) return x + y; soma (0,1); Funções não precisam ter um nome, isto é conhecido como funções anônimas, ou funções lambda. Listing 6.2: Exemplo de função anônima var f = f u n c t i o n ( x, y ) { r e t u r n x + y ; f ( 0, 1 ) ; 6.1 Funções tratadas como objetos Uma função também é um objeto, pode-se usar a mesma sintaxe de criação de objetos para criar uma função: Listing 6.3: Exemplo de funções criadas como objetos var soma = new Function (" x", "y", " return x+y ;"); 6.2 Funções aninhadas Também é possível definir funções aninhadas:

15 14 Listing 6.4: Exemplo de funções aninhadas function soma (x, y){ function f(x, y ){ return x + y; return f(x, y ); Como visto, funções são muito flexíveis podendo ser associadas a variáveis, passadas como parâmetros para outras funções e manipuladas como objetos, ou seja, funções são "cidadãos de primeira classe"[23]. Aspecto que torna interessante uma abordagem de programação funcional com esta linguagem. 6.3 Closures Closures são fragmentos de código que mantém uma referência ao ambiente no qual foram criados. Desta forma, o retorno de um método não necessariamente implica na destruição das variáveis locais deste, já que um closure pode estar referenciando estas variáveis locais[24]. Listing 6.5: Exemplo de closure function Retangulo ( umaaltura, umalargura ) { var altura = umaaltura ; var largura = umalargura ; this. obterlargura = function () { return largura ; this. obteraltura = function () { return altura ; Closures são muito utilizados em linguagens como Ruby, Python, Lisp, entre outras linguagens.

16 15 7 Orientação a objetos A linguagem é orientada a objetos e baseada no paradigma de orientação a protótipos(prototipação), que apresenta diferenças conceituais da orientação a objetos tradicional que é utilizada em linguagens como Java e SmallTalk. Por isto é conveniente definir alguns conceitos na abordagem tradicional para avaliar estas diferenças. 7.1 Conceitos de OO sob a perspectiva tradicional Classes O conceito de classe está presente desde a primeira linguagem orientada a objetos desenvolvida, o Simula. Podemos definir uma classe como um tipo abstrato de dados que define comportamento(métodos) e dados(atributos) em um único módulo, que representa uma entidade do sistema desenvolvido[25] Objetos : Todo objeto é uma instância de uma classe[25], representando um dos estados possíveis dela. Objetos são criados passando uma mensagem de criação para sua classe Herança : É o compartilhamento de comportamento e atributos entre as classes[26]. Quando uma classe herda comportamento de mais de uma classe dizemos que houve herança múltipla, caso contrário a herança é simples.

17 Prototipação Os princípios da orientação a objetos sob a perspectiva tradicional estão totalmente atrelados ao conceito de classe, o que gera alguns problemas. Na abordagem com classes todos os objetos de uma determinada classe tem o mesmo comportamento, toda vez que se queira modificar o comportamento de um objeto é necessário criar uma classe e instanciar o mesmo. Foi com o intuito de eliminar a dependência entre classes e instâncias que a prototipação foi criada[27]. Sua motivação foi o desenvolvimento de um ambiente de simulação orientado a objetos feito em SmallTalk chamado ThingPad[28], como a linguagem era gráfica, o ciclo padrão de criação de classe e instanciação de objetos limitava o seu potencial exploratório. Neste modelo existem os objetos, que são entidades auto-consistentes, que possuem estado e comportamento, entretanto se só existissem objetos não haveria como alterar propriedades que são comuns entre um conjunto de objetos, devido a inexistência da noção de tipo[27]. O protótipo introduz a noção de tipo, ele é um objeto como qualquer outro, mas que serve de exemplo para criação de objetos do mesmo tipo e também para definição de comportamento compartilhado, ou seja herança[27]. O EcmaScript teve seu modelo de prototipação baseado no Self [29], uma das primeiras linguagens a utilizarem este paradigma[30]. 7.3 O modelo de prototipação do EcmaScript Objetos Um objeto em EcmaScript é uma estrutura que contém propriedades, cada propriedade tem um nome único e está associada a um tipo primitivo ou um objeto[22].

18 Criando objetos Para se criar objetos é necessário utilizar o operador new e em seguida uma função qualquer. Listing 7.1: Exemplo de criação de objeto function Livro ( titulo, autor ) { this. titulo = titulo ; this. autor = autor ; var livro = new Livro (" O Alienista ", " Machado de Assis "); Nesta operação o operador new é invocado criando um objeto, este novo objeto então chama a função Livro() com dois parâmetros, quando esta função é invocada a palavra reservada this recebe automaticamente a referência do objeto criado, desta forma são criadas as propriedades título e autor que são associadas aos parâmetros, por fim o objeto é retornado. Utilizando as funções construtoras podemos criar objetos que compartilham das mesmas propriedades, uma função construtora tem seu nome igual ao nome do tipo do objeto criado iniciado por letra maiúscula por convenção, porém é possível embora não recomendável que elas tenham outro nome. É importante enfatizar que em Java ou C++ quando estamos no escopo de uma classe, um atributo precedido de this é a mesma variável que sem o this, isto não é verdade no caso do EcmaScript Propriedades Propriedades podem ser definidas das seguintes formas: livro. autor = " Machado de Assis "; Listing 7.2: Exemplo de acesso a propriedades livro [" autor "] = " Machado de Assis "; A primeira forma é idêntica a notação de ponto utilizada pelo Java, a segunda opção é conveniente para criação de propriedades com nomes variáveis. Se a propriedade não existir ela é criada no objeto, outros objetos criados não terão esta propriedade a não ser que ela seja criada na função construtora, propriedades também podem ser removidas utilizando o comando delete, esta capacidade de definir propriedades dos objetos em tempo de execução traz muita flexibilidade a linguagem.

19 Métodos Um método é uma propriedade associada a uma função. Listing 7.3: Exemplo de definição de métodos function Retangulo ( altura, largura ) { this. altura = altura ; this. largura = largura ; this. area = function () { return this. altura * this. largura ; var umretangulo = new Retangulo (10,20); var areadoretangulo = umretangulo. area (); No código acima temos uma função utilizada como construtor, chamada "Retangulo"que cria três propriedades em um objeto quando é invocada depois do operador new, a propriedade área esta associada a uma função e portanto é um método dos objetos do tipo "Retangulo" Encapsulamento Cada objeto deve esconder suas informações do resto do sistema o tanto quanto for possível, se uma informação do seu estado é necessária então ela deve ser acessada por uma interface bem definida através de passagem de mensagens[25]. No EcmaScript não existem modificadores de acesso para propriedades dos objetos, todas as propriedades podem ser acessadas em qualquer parte do programa, o que acaba rompendo o principio do encapsulamento. Para contornamos este problema e criarmos métodos de acesso para as propriedades basta definir variáveis dentro do construtor para guardar o valor das propriedades escondidas e depois criar funções para retornar e alterar estas variáveis.

20 19 Listing 7.4: Exemplo de encapsulamento de propriedades function Retangulo ( umaaltura, umalargura ) { var altura = umaaltura ; var largura = umalargura ; this. obterlargura = function () { return largura ; this. obteraltura = function () { return altura ; Como variáveis declaradas dentro do escopo de uma função não podem ser acessadas de fora do escopo da mesma garantimos que elas só poderão ser acessadas por meio dos métodos de acesso, garantindo o encapsulamento Protótipos e Herança No EcmaScript a prototipação é implementada através das funções construtoras. Toda função possuí uma propriedade chamada prototype, por padrão esta propriedade é definida como um objeto do tipo Object, mas pode ser alterada sendo associada ao objeto do qual queremos herdar as propriedades. Listing 7.5: Exemplo de herança de propriedades function Ponto (x, y){ this.x = x; this.y = y; Ponto. prototype = new Colorido (" marrom "); function Colorido ( cor ){ this. cor = cor ; Neste código definimos a propriedade prototype da função construtora do tipo Ponto como sendo um novo objeto do tipo Colorido, todos os objetos criados com a função Ponto terão a propriedade cor herdada do protótipo definido no construtor.

21 20 Sobrescrevendo propriedades Para sobrescrever métodos e propriedades basta defini-los novamente no objeto criado. Listing 7.6: Exemplo de redefinição de propriedades herdadas function Ponto (x, y){ this.x = x; this.y = y; this. cor = " verde "; Ponto. prototype = new Colorido (" marrom "); function Colorido ( cor ){ this. cor = cor ; Estendendo o protótipo Para estender um método basta utilizar o protótipo sobrescrevendo aonde for preciso. Listing 7.7: Estendendo propriedades herdadas function Colorido ( cor ){ this. obtercor = function () { return cor ; this. comotexto = function () { return " cor : " + this. obtercor (); function PontoColorido (x,y, cor ){ prototype = new Colorido ( cor ); this. obterx = function () { return x; this. obtery = function () { return y; this. comotexto = function (){ return " x :" + this. obterx () + " y :" + this. obtery () + " " + prototype. comotexto ();

22 21 8 Simulando classes com meta-programação Apesar do EcmaScript não ter um mecanismo de definição de classes embutido, é possível implementar um framework para simular classes utilizando a própria linguagem para isto. 8.1 O framework Prototype Um framework que possuí suporte a simulação de classes é o Prototype, podemos por exemplo criar uma classe, definindo seu construtor e métodos para ela. Listing 8.1: Criando uma classe com o framework Prototype var Colorido = Class. create ({ initialize : function ( cor ) { this. cor = cor ;, comotexto : function () { return " cor : " + this. cor ; ); No código acima criamos uma classe Colorido, que tem um construtor e um método como- Texto, podemos criar uma sub-classe de Colorido com o código abaixo: Listing 8.2: Criando uma sub-classe utilizando o framework Prototype var Ponto = Class. create ( Colorido, { initialize : function (x, y) { this.x = x; this.y = y;, comotexto : function ( $super ) { return "x: " + this.x + "y: " + this.y + $super (); );

23 22 No código acima definimos a classe Ponto como uma sub-classe de Colorido, sobrescrevendo seu método comotexto, a super-classe pode ser acessada na sub-classe utilizando a variável $super Outras funcionalidades do framework Além da simulação de classes o framework também possuí funções que estendem o DOM(Document Object Model), um padrão definido pela W3C para o modelo de objetos de uma página web, além de funcionalidades que facilitam o desenvolvimento de aplicações web utilizando AJAX.

24 23 Referências Bibliográficas [1] BROWSER Statistics. Disponível em: s tats.asp.acessoe 25nov [2] CROCKFORD, D. JavaScript: The World s Most Misunderstood Programming Language Disponível em: Acesso Em: 25 nov [3] RICH Internet application - Wikipedia, the free encyclopedia. Disponível em: I nternet a pplication.acessoem : 25nov [4] GOOGLE Gears, sítio oficial. Disponível em: Acesso Em: 25 nov [5] AJAX - Wikipedia, the free encyclopedia. Disponível em: 2 5nov [6] INNOVATORS of the Net: Brendan Eich and JavaScript. Disponível em: 2 5nov [7] CORE JavaScript 1.5 Guide. Disponível em: J avascript 1.5 G u JavaScript O verviewwhat i s J avascript.3f.acessoem : 25nov [8] NETSCAPE and Sun announce JavaScript, the Open, cross plataform object scripting language for enterprise networks and the Internet. Disponível em: Acesso Em: 25 nov [9] JSCRIPT (Windows Script Technologies). Disponível em: Acesso Em: 25 nov [10] ADOBE ActionScript Technology Center. Disponível em: Acesso Em: 25 nov [11] STANDARD ECMA-262 ECMAScript Language Specification. Disponível em: Acesso Em: 25 nov [12] STANDARD ECMA-290 ECMAScript Components Specification. Disponível em: Acesso Em: 25 nov [13] STANDARD ECMA-357 ECMAScript for XML (E4X) Specification. Disponível em: Acesso Em: 25 nov

25 24 [14] PROPOSED ECMAScript 4 Edition Language Overview. Disponível em: Acesso Em: 25 nov [15] THE World of ECMAScript. Disponível em: Acesso Em: 25 nov [16] INTERPRETER - Wikipedia, the free encyclopedia. Disponível em: ( computing).acessoem : 25nov [17] SPIDERMONKEY (JavaScript-C) Engine. Disponível em: Acesso Em: 25 nov [18] RHINO: JavaScript for Java. Disponível em: Acesso Em: 25 nov [19] TAMARIN Project. Disponível em: Acesso Em: 25 nov [20] PIERCE, B. C. Types and Programming Languages. [S.l.]: The MIT Press, ISBN [21] MIKKONEN, A. T. T. Using JavaScript as a Real Programming Language. [S.l.], [22] FLANAGAN, D. JavaScript: The Definitive Guide. 5th. ed. [S.l.]: O Reilly Media, p. ISBN [23] BURSTALL, R. Christopher strachey - understanding programming languages. Higher- Order and Symbolic Computation, [24] PIERI, G. Desenvolvimento de uma linguagem de programação [25] MEYER, B. Object-Oriented Software Construction. 2th. ed. [S.l.]: Prentice Hall, p. ISBN [26] ABADI, L. C. M. A Theory of Objects. 1th. ed. [S.l.]: Springer, p. ISBN [27] BOMING, A. Classes vs. Prototypes in Object-oriented languages. [S.l.], [28] BOMING, A. ThingLab - A Constraint-Oriented Simulation Laboratory. Tese (Doutorado) Stanford University, [29] UNGAR, R. B. S. D. Self: The Power of Simplicity. [S.l.], [30] INTRODUCTION to Object-Oriented JavaScript From MDC. Disponível em: t o O b ject Oriented J avascript.acessoem : 25nov.2007.

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi 5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem

Leia mais

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais Curso de Java Orientação a objetos e a Linguagem JAVA Roteiro A linguagem Java e a máquina virtual Objetos e Classes Encapsulamento, Herança e Polimorfismo Primeiro Exemplo A Linguagem JAVA Principais

Leia mais

JavaScript 2.0X 1.0 3.0X 1.1 4.0 4.05 1.2 4.06 4.61 1.3 5.0 1.4 6.0 1.5

JavaScript 2.0X 1.0 3.0X 1.1 4.0 4.05 1.2 4.06 4.61 1.3 5.0 1.4 6.0 1.5 JavaScript Diego R. Frank, Leonardo Seibt FIT Faculdades de Informática de Taquara Fundação Educacional Encosta Inferior do Nordeste Av. Oscar Martins Rangel, 4500 Taquara RS Brasil difrank@terra.com.br,

Leia mais

Primeiro contato com JavaScript

Primeiro contato com JavaScript Primeiro contato com JavaScript Visão Geral JavaScript É uma linguagem em formato script; Permite dinamizar funções do site e criar interatividade em páginas web. O JavaScript permite: Coletar dados dos

Leia mais

Começando com Ruby on Rails @gibsongabriel

Começando com Ruby on Rails @gibsongabriel Começando com Ruby on Rails @gibsongabriel Yukiriho 'Matz' Matsumoto http://ruby-lang.org/pt/ Ruby é uma linguagem de programação interpretada, com tipagem forte e dinâmica, que tem como foco a simplicidade

Leia mais

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS Campus Cachoeiro de Itapemirim Curso Técnico em Informática Disciplina: Análise e Projeto de Sistemas Professor: Rafael Vargas Mesquita Este exercício deve ser manuscrito e entregue na próxima aula; Valor

Leia mais

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional Introdução à Linguagem JAVA Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação Laboratório de Visão Computacional Vantagens do Java Independência de plataforma; Sintaxe semelhante às linguagens

Leia mais

Informática I. Aula 6. http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1

Informática I. Aula 6. http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1 Informática I Aula 6 http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1 Ementa Noções Básicas de Computação (Hardware, Software e Internet) HTML e Páginas Web Internet e a Web Javascript e

Leia mais

FBV - Linguagem de Programação II. Um pouco sobre Java

FBV - Linguagem de Programação II. Um pouco sobre Java FBV - Linguagem de Programação II Um pouco sobre Java História 1992: um grupo de engenheiros da Sun Microsystems desenvolve uma linguagem para pequenos dispositivos, batizada de Oak Desenvolvida com base

Leia mais

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática Programação Orientada a Objectos - 28/29; P. Prata, P. Fazendeiro 2 A tecnologia Java Uma ideia base da linguagem JAVA é a de que um programa em JAVA deve poder ser executado em qualquer tipo de computador

Leia mais

Java 2 Standard Edition Como criar classes e objetos

Java 2 Standard Edition Como criar classes e objetos Java 2 Standard Edition Como criar classes e objetos Helder da Rocha www.argonavis.com.br 1 Assuntos abordados Este módulo explora detalhes da construção de classes e objetos Construtores Implicações da

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

Introdução à Programação. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Introdução à Programação. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR Introdução à Programação Orientada a Objetos Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR Fev/2014 Histórico das linguagens de programação ENIAC (1944) Programação

Leia mais

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP 1) Introdução Programação Orientada a Objetos é um paradigma de programação bastante antigo. Entretanto somente nos últimos anos foi aceito realmente

Leia mais

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2 Estrutura de Repetição. Ex. 2 A ESTRUTURA Enquanto faça{} É MELHOR UTILIZADA PARA SITUAÇÕES ONDE O TESTE DE CONDIÇÃO (V OU F) PRECISA SER VERIFICADO NO INÍCIO DA ESTRUTURA DE REPETIÇÃO.

Leia mais

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS ATRIBUTOS PRIVADOS Podemos usar o modificador private, para tornar um atributo privado, obtendo um controle centralizado Definimos métodos para implementar todas as lógicas que utilizam ou modificam o

Leia mais

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem. 1 - O que é JAVASCRIPT? É uma linguagem de script orientada a objetos, usada para aumentar a interatividade de páginas Web. O JavaScript foi introduzido pela Netscape em seu navegador 2.0 e posteriormente

Leia mais

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto Conceitos de Linguagens de Roteiro: Apresentação do plano de ensino; Apresentação do plano de

Leia mais

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP AULA 4 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.

Leia mais

CURSO DE PROGRAMAÇÃO EM JAVA

CURSO DE PROGRAMAÇÃO EM JAVA CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

Linguagem de Programação Introdução a Linguagem Java

Linguagem de Programação Introdução a Linguagem Java Linguagem de Programação Introdução a Linguagem Java Rafael Silva Guimarães Instituto Federal do Espírito Santo Campus Cachoeiro de Itapemirim Definição A linguagem Java foi desenvolvida pela Sun Microsystems,

Leia mais

Linguagens de. Aula 02. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br

Linguagens de. Aula 02. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de Programação III Aula 02 Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de Programação Técnica de comunicação padronizada para enviar instruções a um computador. Assim

Leia mais

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO Capítulo 1 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO 1.1 Histórico de Linguagens de Programação Para um computador executar uma dada tarefa é necessário que se informe a ele, de uma maneira clara, como ele

Leia mais

1. Apresentação. 1.1. Objetivos

1. Apresentação. 1.1. Objetivos 1.1. Objetivos 1. Apresentação Neste capítulo estão descritos os objetivos gerais do livro, os requisitos desejáveis do estudante para que possa utilizá-lo eficientemente, e os recursos necessários em

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Polimorfismo. Prof. Leonardo Barreto Campos 1

Polimorfismo. Prof. Leonardo Barreto Campos 1 Polimorfismo Prof. Leonardo Barreto Campos 1 Sumário Introdução; Polimorfismo; Polimorfismo Java; Métodos Abstratos Java Classes Abstratas Java Exercício - Java Polimorfismo C++ Classe Abstrata C++; Funções

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 10 Persistência de Dados

Leia mais

POO Programação Orientada a Objetos. Classes em Java

POO Programação Orientada a Objetos. Classes em Java + POO Programação Orientada a Objetos Classes em Java + Classes 2 Para que a JVM crie objetos: Ela precisa saber qual classe o objeto pertence Na classe estão definidos os atributos e métodos Programamos

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

AULA 02. 1. Uma linguagem de programação orientada a objetos

AULA 02. 1. Uma linguagem de programação orientada a objetos AULA 02 TECNOLOGIA JAVA O nome "Java" é usado para referir-se a 1. Uma linguagem de programação orientada a objetos 2. Uma coleção de APIs (classes, componentes, frameworks) para o desenvolvimento de aplicações

Leia mais

Curso Técnico em Redes

Curso Técnico em Redes Curso Técnico em Redes Prof. Airton Ribeiro - 2012 Histórico das Linguagens de Programação O que é? É um método padronizado para expressar instruções para um computador. É um conjunto de regras sintáticas

Leia mais

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 05 Estrutura e arquitetura do SO Parte 2 Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed. LTC,

Leia mais

O que é o JavaScript?

O que é o JavaScript? JavaScript Introdução O JavaScript é utilizado por milhões de páginas na web para melhorar o design, validar forms, e muito mais O JavaScript foi inicialmente desenvolvido pela Netscape e é a linguagem

Leia mais

Introdução a Java. Hélder Nunes

Introdução a Java. Hélder Nunes Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais

Leia mais

Orientação a Objetos com Java

Orientação a Objetos com Java Orientação a Objetos com Java Julio Cesar Nardi julionardi@yahoo.com.br 2011/2 Apresentação 3: Orientação Objetos: Conceitos Básicos Objetivos: Compreender os Conceitos Básicos da Orientação a Objetos;

Leia mais

Um Driver NDIS Para Interceptação de Datagramas IP

Um Driver NDIS Para Interceptação de Datagramas IP Um Driver NDIS Para Interceptação de Datagramas IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furb.br Resumo. Este artigo apresenta o desenvolvimento de um driver NDIS 1 para

Leia mais

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc. Herança Técnico em Informática, M.Sc. Herança 2 Herança Reutilização de código Exemplo Banco: Um banco oferece diversos serviços que podem ser contratados individualmente pelos clientes. Quando um serviço

Leia mais

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C# Linguagem de Programação 3 Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C# Prof. Mauro Lopes 1-31 35 Objetivos Nesta aula iremos apresentar a tecnologia.net, o ambiente de desenvolvimento

Leia mais

OOP - Java. Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora

OOP - Java. Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora OOP - Java Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora 1 Sumário Java Aviso! História do Java Programação Orientada à Objetos Os quatro pilares da OOP Abstração

Leia mais

Sistemas Operacionais

Sistemas Operacionais UNIVERSIDADE BANDEIRANTE DE SÃO PAULO INSTITUTO POLITÉCNICO CURSO DE SISTEMAS DE INFORMAÇÃO Sistemas Operacionais Notas de Aulas: Tópicos 7 e 8 Estrutura do Sistema Operacional São Paulo 2009 1 Sumário

Leia mais

Criando um script simples

Criando um script simples Criando um script simples As ferramentas de script Diferente de muitas linguagens de programação, você não precisará de quaisquer softwares especiais para criar scripts de JavaScript. A primeira coisa

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Introdução ao Paradigma OO

Leia mais

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo Bezerra. Editora Campus/Elsevier Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 11 Arquitetura do sistema Nada que é visto, é visto de uma vez e por completo. --EUCLIDES

Leia mais

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 1. Conceitos de Orientação a Objetos Introdução O paradigma da POO Classes

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

Curso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente:

Curso de Eng. Informática Linguagens de Programação. C Sharp University Data Processing. (C Sharp Universidade de Processamento de Dados) Docente: Trabalho elaborado por: Carlos Palma nº5608 Curso de Eng. Informática Linguagens de Programação C Sharp University Data Processing (C Sharp Universidade de Processamento de Dados) Docente: José Jasnau

Leia mais

Desenvolvimento Web TCC-00.226 Turma A-1

Desenvolvimento Web TCC-00.226 Turma A-1 Desenvolvimento Web TCC-00.226 Turma A-1 Conteúdo Introdução ao Ambiente de Desenvolvimento Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.2/tcc-00.226

Leia mais

Introdução à Linguagem Java

Introdução à Linguagem Java Introdução à Linguagem Java Histórico: Início da década de 90. Pequeno grupo de projetos da Sun Microsystems, denominado Green. Criar uma nova geração de computadores portáveis, capazes de se comunicar

Leia mais

Organização e Arquitetura de Computadores I. de Computadores

Organização e Arquitetura de Computadores I. de Computadores Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização Básica B de Computadores

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO 1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO Desde o seu surgimento, o manuseio da computação é baseado em linguagens de programação. Ela permite que sejam construídos aplicativos

Leia mais

Técnicas de Programação II

Técnicas de Programação II Técnicas de Programação II Aula 06 Orientação a Objetos e Classes Edirlei Soares de Lima Orientação a Objetos O ser humano se relaciona com o mundo através do conceito de objetos.

Leia mais

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education Java Como Programar, 8/E Slide 1 Slide 2 Slide 3 Métodos genéricos e classes genéricas (e interfaces) permitem especificar, com uma única declaração de método, um conjunto de métodos relacionados ou, com

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

1.1. Aplicações de TVD dinâmicas

1.1. Aplicações de TVD dinâmicas 1 Introdução Uma aplicação de TV Digital (TVD) comumente é composta por um vídeo principal associado a outros objetos (aplicações, imagens, vídeos, textos etc.), que são transmitidos em conjunto possibilitando

Leia mais

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Faculdade INED UML 01 Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Referências BARBIERI, Carlos. Análise e Programação

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE Amarildo Aparecido Ferreira Junior 1, Ricardo Ribeiro Rufino 1 ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil aapfjr@gmail.com

Leia mais

Modelagem de Software Prof. Flávio de Oliveira Silva, Ph.D.

Modelagem de Software Prof. Flávio de Oliveira Silva, Ph.D. UML Diagramas Um diagrama é a apresentação gráfica de um conjunto de elementos, onde os vértices são ITENS e os arcos RELACIONAMENTOS UML 2.0 possui os seguintes diagramas: Diagrama de Classes (Class Diagram)

Leia mais

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando

Leia mais

Universidade Federal do Espírito Santo CCA UFES. Centro de Ciências Agrárias CCA UFES Departamento de Computação. JavaScript

Universidade Federal do Espírito Santo CCA UFES. Centro de Ciências Agrárias CCA UFES Departamento de Computação. JavaScript Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Universidade Federal do Espírito Santo CCA UFES JavaScript Desenvolvimento de Sistemas para WEB Site:

Leia mais

3.1 Definições Uma classe é a descrição de um tipo de objeto.

3.1 Definições Uma classe é a descrição de um tipo de objeto. Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Classes Autoria:Aristófanes Corrêa Silva Adaptação:

Leia mais

BEM-VINDOS AO CURSO DE ORIENTADO A OBJETOS

BEM-VINDOS AO CURSO DE ORIENTADO A OBJETOS 21/11/2013 PET Sistemas de Informação Faculdade de Computação Universidade Federal de Uberlândia 1 BEM-VINDOS AO CURSO DE ORIENTADO A OBJETOS Leonardo Pimentel Ferreira Higor Ernandes Ramos Silva 21/11/2013

Leia mais

Programação de Computadores II TCC-00.309 Turma A-1

Programação de Computadores II TCC-00.309 Turma A-1 Material elaborado pelo prof. Leandro A. F. Fernandes com contribuições dos profs. Anselmo A. Montenegro e Marcos Lage Programação de Computadores II TCC-00.309 Turma A-1 Conteúdo Introdução ao Ambiente

Leia mais

4 Estrutura do Sistema Operacional. 4.1 - Kernel

4 Estrutura do Sistema Operacional. 4.1 - Kernel 1 4 Estrutura do Sistema Operacional 4.1 - Kernel O kernel é o núcleo do sistema operacional, sendo responsável direto por controlar tudo ao seu redor. Desde os dispositivos usuais, como unidades de disco,

Leia mais

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 Eduardo Laguna Rubai, Tiago Piperno Bonetti Universidade Paranaense (Unipar) Paranavaí PR- Brasil eduardorubay@gmail.com, bonetti@unipar.br Resumo.

Leia mais

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 Controle de Revisões Micropagamento F2b Web Services/Web 18/04/2006 Revisão Data Descrição 00 17/04/2006 Emissão inicial. www.f2b.com.br

Leia mais

Programação Orientada a Objetos em Java

Programação Orientada a Objetos em Java Programação Orientada a Objetos em Java Rone Ilídio da Silva Universidade Federal de São João del-rei Campus Alto Paraopeba 1:14 1 Objetivo Apresentar os principais conceitos de Programção Orientada a

Leia mais

Profº. Enrique Pimentel Leite de Oliveira

Profº. Enrique Pimentel Leite de Oliveira Profº. Enrique Pimentel Leite de Oliveira O termo orientação a objetos significa organizar o mundo real como uma coleção de objetos que incorporam estrutura de dados e um conjunto de operações que manipulam

Leia mais

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN SISTEMAS OPERACIONAIS Apostila 03 Estrutura do Sistema Operacional UNIBAN 1.0 O Sistema Operacional como uma Máquina Virtual A arquitetura (conjunto de instruções, organização de memória, E/S e estrutura

Leia mais

Capítulo 2 Introdução à ferramenta Flash

Capítulo 2 Introdução à ferramenta Flash Capítulo 2 Introdução à ferramenta Flash Índice 1. O uso da ferramenta Flash no projeto RIVED.... 1 2. História do Flash... 4 1. O uso da ferramenta Flash no projeto RIVED. É importante, antes de iniciarmos

Leia mais

Introdução ao Javascript

Introdução ao Javascript Programação WEB I Introdução ao Javascript Apresentação da Disciplina,Introdução a linguagem Javascript Objetivos da Disciplina Apresentar os principais conceitos da linguagem Javascript referente à programação

Leia mais

Programa Analítico. Introdução. Origens da programação Orientada a Objetos. Paradigma procedural. Paradigma Orientado a Objetos.

Programa Analítico. Introdução. Origens da programação Orientada a Objetos. Paradigma procedural. Paradigma Orientado a Objetos. Programação II Prof. Gustavo Willam Pereira e-mail: gustavowillam@gmail.com ENG10082 Programação II 1 Ementa Programação orientada a objetos: classes e objetos, atributos e métodos, especificadores de

Leia mais

Conteúdo Programático de PHP

Conteúdo Programático de PHP Conteúdo Programático de PHP 1 Por que PHP? No mercado atual existem diversas tecnologias especializadas na integração de banco de dados com a WEB, sendo o PHP a linguagem que mais se desenvolve, tendo

Leia mais

Figura 01 Kernel de um Sistema Operacional

Figura 01 Kernel de um Sistema Operacional 01 INTRODUÇÃO 1.5 ESTRUTURA DOS SISTEMAS OPERACIONAIS O Sistema Operacional é formado por um Conjunto de rotinas (denominado de núcleo do sistema ou kernel) que oferece serviços aos usuários e suas aplicações

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

ProgramaTchê programatche.net Programação OO com PHP

ProgramaTchê programatche.net Programação OO com PHP Roteiro 2 Objetivos: * Apresentar a sintaxe básica para utilização de Orientação a Objetos em PHP. Ferramentas necessárias Navegador, NetBeans, Servidor Apache. 1 Orientação a Objetos em PHP PHP é uma

Leia mais

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância 5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância O capítulo anterior apresentou uma discussão sobre a inclusão dos chamados learning services no processo

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

Introdução à Linguagem

Introdução à Linguagem Introdução à Linguagem Curso de Nivelamento do PPGMNE Janeiro / 2011 Juliano J. Scremin jjscremin@jjscremin.t5.com.br Um pouco de história Um pouco de história: Nascimento do Python Um pouco de história:

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Comunicação Remota Gustavo Reis gustavo.reis@ifsudestemg.edu.br 1 Comunicação entre processos está no coração de todo sistema distribuído. Não tem sentido estudar sistemas distribuídos

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Classes abstratas Até agora, usamos interfaces toda vez que queríamos representar algum conceito abstrato

Leia mais

Comparando Java e C#

Comparando Java e C# Por: Lincon Alexandre Marques Jonathan T. Dos Santos Ricardo Fumio Tanimoto Abril, 2009 Comparando Java e C# Introdução Escolhemos como tema deste artigo um comparativo entre as linguagens Java e C#, duas

Leia mais

Fundament n os s da platafo f rm r a. NE N T André Menegassi

Fundament n os s da platafo f rm r a. NE N T André Menegassi Fundamentos da plataforma.net André Menegassi O que é o.net Framework?.NET é uma plataforma de software para desenvolvimento de aplicações que conecta informações, sistemas, pessoas e dispositivos através

Leia mais

Aspectos técnicos do desenvolvimento baseado em componentes

Aspectos técnicos do desenvolvimento baseado em componentes Aspectos técnicos do desenvolvimento baseado em componentes Um novo processo de desenvolvimento O uso de componentes traz mudanças no processo de desenvolvimento Além de desenvolver um produto, queremos

Leia mais

Web Services. Autor: Rômulo Rosa Furtado

Web Services. Autor: Rômulo Rosa Furtado Web Services Autor: Rômulo Rosa Furtado Sumário O que é um Web Service. Qual a finalidade de um Web Service. Como funciona o serviço. Motivação para o uso. Como construir um. Referências. Seção: O que

Leia mais

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de

Leia mais

Sobre o Professor Dr. Sylvio Barbon Junior

Sobre o Professor Dr. Sylvio Barbon Junior 5COP088 Laboratório de Programação Aula 1 Java Prof. Dr. Sylvio Barbon Junior Sylvio Barbon Jr barbon@uel.br 1 Sobre o Professor Dr. Sylvio Barbon Junior Formação: Ciência e Engenharia da Computação (2005

Leia mais

2 Geração Dinâmica de Conteúdo e Templates de Composição

2 Geração Dinâmica de Conteúdo e Templates de Composição 2 Geração Dinâmica de Conteúdo e Templates de Composição Alguns dos aspectos mais importantes na arquitetura proposta nesta dissertação são: a geração dinâmica de conteúdo e a utilização de templates de

Leia mais

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura UFPI CCN DIE Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura O projeto Desenvolver um compilador de um subconjunto básico da linguagem PORTUGOL.

Leia mais

1.6. Tratamento de Exceções

1.6. Tratamento de Exceções Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER

Leia mais

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

Leia mais

Introdução à Tecnologia Web. Tipos de Sites. Profª MSc. Elizabete Munzlinger www.elizabete.com.br

Introdução à Tecnologia Web. Tipos de Sites. Profª MSc. Elizabete Munzlinger www.elizabete.com.br IntroduçãoàTecnologiaWeb TiposdeSites ProfªMSc.ElizabeteMunzlinger www.elizabete.com.br ProfªMSc.ElizabeteMunzlinger www.elizabete.com.br TiposdeSites Índice 1 Sites... 2 2 Tipos de Sites... 2 a) Site

Leia mais