Linguagens de Especificação
Universidade Federal Fluminense
Nú
mer
1. Introdução
Procura­se analisar os diferenciais que estão por traz do sucesso das linguagens XML, UML, TEX, HTML, entre
outras. As bases de uma nova geração de aplicações que serão na área da informação na rede Internet e em intranets.
No inicio da era dos computadores, há 40 ou 50 anos, estes eram usados, sobre tudo, para processar dados e fazer
cálculos. O nível d abstração na interação com as maquinas era baixo demais para a maioria das pessoas. Sua utilização era
quase que restrita a laboratórios de tecnologia. Há hoje uma mudança radical deste cenário. Após a surpreendente evolução da
microinformática nas ultimas duas décadas, que levou sobre maneira o nível de abstração da relação homem / máquina,
contata­se hoje que a maior contribuição visível dos computadores esta em sua utilização como ferramentas de
armazenamento, organização, recuperação e intercambio de informações entre pessoas, empresas e ate entre programas. Enfim,
hoje o computador e visto pela sociedade, cada vez mais, como uma ferramenta de comunicação, e não propriamente de calculo.
A informação e o computador são parceiros antigos, mas a intensificação e democratização do seu uso, aliadas à
abstração sempre crescente do nível de interação e troca de informações, criaram terreno propicio para a origem das chamadas
linguagens chamadas de linguagens de especificação. Este fenômeno foi marcante na primeira década dos anos 90, com o
aparecimento da Web. Estas linguagens permitem a construção de padrões públicos e abertos que esta sendo criados para se
tentarem maiores avanços no tratamento da informação; elas minimizam o problema de transferência de um formato de
representação para outro e liberam a informação das tecnologias de informação proprietárias.
Estas linguagens identificam, de forma descritiva, cada “entidade informacional” digna de significado presente nos
documentos, como, por exemplo, parágrafos, títulos, tabelas ou gráficos. A partir destas descrições, os programas de
computador podem melhor compreender e, em conseqüência, melhor tratar ou processar a informação contida em documentos
eletrônicos.
A idéia duma linguagem de muito alta nível para especificação de sistemas informáticos não é de maneira nenhuma
nova. Reconhecida a necessidade duma linguagem não procedimental que permita a especificação dos sistemas informáticos
duma maneira tão afastada quanto possível das restrições impostas ao nível da implementação.
Toda linguagem de especificação é baseada num determinado modelo dos sistemas informáticos. Em particular, esse
modelo inclui um submodelo de componente de memorização (base de dados) e outro dos elementos funcionais (processos)
responsáveis pela evolução do sistema. Nú
mer
1.1. Marcação procedimental X Marcação descritiva Todo o sistema editor ou “processador” de textos tem de embutir, juntamente com o texto editado marcas que
fornecem indicações de como esse texto deve ser apresentado ao usuário. As marcas podem estar escondidas do usuário, como
nos editores do tipo WYSIWYG (“What You See Is What You Get”. O editor Word da Microsoft é um exemplo desse tipo de
processador de textos.), ou devem ser explicitadas pelo usuário, que obterá seu documento no formato visual desejado somente
após uma compilação do texto (TEX e LATEX são exemplos desse tipo de processador de texto).
Marcas inseridas no documento de forma implícita (pelo programa, em resposta a determinado comando do usuário)
ou explicita (pelo usuário) indicam como o processador deve dispor o texto na página. Estas marcas ou códigos são tipicamente
específicos a um sistema de formatação proprietário. Cada software editor ou compilador de textos possui seu próprio conjunto
de códigos com significado apenas para aquele sistema, que deverá rodar em um determinado sistema operacional ou em uma
maquina especifica. Diz­se destes sistemas que eles promovem uma marcação procedimental do texto, cada código indicando o
procedimento a ser seguido para a apresentação do texto ao usuário.
As linguagens baseadas em marcação descritiva usam marcas (ou tags) para qualificar cada objeto do texto,
cumprindo um primeiro passo para transformá­los em informação tratável por computador. Uma marca é tudo o que não for
considerado conteúdo em um documento. A idéia básica é a de que o conteúdo do documento de vê estar separado do estilo
usado em sua apresentação. Cabe, à aplicação que interpreta a linguagem de especificação, formatar o texto em tempo real e
apresentá­los aos usuários. 2. Linguagem de Especificação SGML
2.1. Os Princípios do SGML
Standard Generalized Makrkup Language, ou simplesmente SGML, é uma (meta) linguagem criada há
aproximadamente 30 anos como um esforço para se definir uma linguagem de marcas para a representação de informações em
texto (Edward, 1997). A linguagem foi reconhecida como um padrão ISSO (8879) em 1986. SGML não é um conjunto
predeterminado de marcas, e sim uma linguagem para se definirem quaisquer conjuntos de marcas, uma linguagem
autodescritiva, cada documento SGML carrega consigo sua própria especificação formal, o Data Type Document (DTD).
Nú
mer
O DTD é uma espécie de gramática formal criada a partir da notação Extended Backus­Naur Form (EBNF), que
define como as marcas devem ser interpretadas, quais as regras que restringem o uso de cada marca nos diferentes contextos do
documento e, até mesmo, quando relevante for, a ordem em que as marcas devem aparecer no documento. Resumindo, SGML é
uma linguagem para definir autras linguagens, ou ainda uma linguagem para conceber DTDs, tipos de documentos.
3. Linguagem de Especificação HTML
3.1. A origem e evolução de HTML
No início dos anos 80, SGML passou a ser usada em várias organizações, ente as quais o CERN, Centro Europeu
de Pesquisas Nucleares em Genebra, onde um pesquisador resolveu empregar a linguagem em seu programa de edição de
hipertexto (Connolly et al., 1997). Assim, Tim Berners­Lee acabou inventando o World­Wide Web, graças a uma idéia
revolucionária na época: o link (ou ligação) entre documentos que poderiam estar situados em qualquer lugar na rede de
computadores de seu laboratório ou do mundo, através da Internet e do conceito de Universal Resource Locator (URL).
HTML é um exemplo de linguagem originada de SGML. Ou seja, a definição formal (ou especificação, ou ainda o
DTD) de HTML é construída em SGML. O HTML possui um grupo de tags predefinidos, concebidos com a função de
organizar a informação a ser transferida por meio de páginas WEB.
HTML é um padrão usado em milhares de aplicações, incluindo navegadores, editores, softwares de e­mail,
servidores de base de dados e outros.
3.2. Algumas caraterísticas de HTML
O HTML não é uma linguagem de programação e sim uma linguagem de formatação, isto é, fornece elementos que
indicam como um texto deve aparecer na página, tais como negrito e sublinhado. Também é possível inserir imagens,
multimídia e outros recursos no texto.
Nú
mer
Uma das principais características da linguagem HTML é que, diferente das outras, os arquivos HTML são escritos
em texto comum legíveis para qualquer sistema operacional.
A primeira coisa que se deve levar em conta ao projetar páginas para a web é que HTML não foi criada para
controlar a aparência dos documentos, ao contrário dos processadores de texto e programas de layout de página. As tags de
HTML apenas informam ao navegador o que são os elementos que estão na página. Cada navegador mostra a página de uma
forma um pouco diferente, o que dificulta o trabalho de programação visual. Também, cada usuário pode modificar a
configuração padrão de seu navegador para que o seu programa mostre o texto na fonte (tipo de caractere) que quiser. 3.3. Marcações básicas de HTML
Como as páginas na Internet são documentos de texto comum, pode­se utilizar um editor de texto simples, como o
Bloco de Notas do Windows. Existem editores de HTML que podem facilitar a confecção das páginas. É importante,
também, que sejam gravados no formato texto e com a extensão .htm ou .html. Portanto, se for utilizado um processador de
texto, como o Word, WordPerfect ou WordStar, o arquivo deve ser salvo no formato "somente texto". O navegador não vai
entender um arquivo gravado nos formatos específicos dos processadores de texto (doc, por exemplo).
A linguagem HTML utiliza marcações (tags) simples e em pares. O browser interpreta a marcação e a executa.
As tags HTML estão sempre entre os sinais "menor que"(<) e "maior que" (>). Para as marcações em pares existe uma marcação de entrada (ou abertura) e de saída (ou fechamento). A diferença entre elas é
de que, na de saída, coloca­se uma barra diagonal depois do "</".
3.4. HTML e a “guerra dos browsers”
No início dos anos 90, nos seus primeiros anos de vida de 1992 a 1995, quando a Web literalmente “explodiu” no
mundo todo, muitas organizações e empresas começaram a perceber que estavam bastante limitadas pela falta de flexibilidade
de HTML no tocante às suas possibilidades em promover a troca mais efetiva de informações pela Web. HTML foi então
estendida posteriormente a cada nova versão, de forma um tanto desorganizada, impulsionada pela conhecida guerra dos
navegadores (ou browsers). E o que foi pior: estas extensões integram principalmente elementos puramente de apresentação
(formato, estilo), que controlam a aparÊncia das informações nos navegadores. Como visto anteriormente, isso vai de encontro
Nú
mer
ao paradigma das linguagens de especificação descritiva, no sentido em que estas procuram separar a estrutura e a semântica
da informação de sua apresentação física (estilo). A introdução de formatação de estilo em HTML começou a tornar os
documentos de difícil leitura para o homem.
Tentando fazer o papel de árbitro nesta guerra, o World­Wide consortium (W3C) definiu versões mínimas que
deveriam se interpretadas por todos os navegadores. O W3C é a organização que se encarrega do desenvolvimento e
manutenção dos padrões da Web (para mais informações, visite www.w3c.org). Em uma de suas últimas publicação sobre
HTML, o W3C incentiva a separação entre a estrutura e o visual dos documentos HTML, aspecto fundamental do
paradigma, e desenvolveu as chamadas “ folhas de estilo” ou CSS (Cascading Style Sheet), que define como os elementos devem
ser mostrados nos navegadores. 4. Linguagem de Especificação UML
Unified Modeling Language (UML – Luinguagem de Modelagem Unificada) é uma linguagem de modelagem não
proprietária de terceira geração. A Linguagem Unificada é um método aberto usado para especificar, visualizar, construir e
documentar os artefatos de um sistema de software orientado a objetos.
Basicamente a UML permite que desenvolvedores visualizem os produtos de seu trabalho em diagramas
padronizados. Junto com uma notação gráfica, a UML também especifica significados, isto é, semântica. É uma notação
independente de processos, embora o RUP (Rational Unified Process) tenha sido especificamente desenvolvido utilizando a
UML.
É importante distinguir entre um modelo UML e um diagrama (ou conjunto de diagramas) de UML – o último é
uma representação gráfica da informação do primeiro, mas o primeiro pode existir independentemente. O XMI (XML
Metadata Interchange) na sua versão corrente disponibiliza troca de modelos mas não de diagramas.
4.1. História do UML
O UML tem origem na compilação das "melhores práticas de engenharia" que provaram ter sucesso na modelação de
sistemas grandes e complexos. Sucedeu aos conceitos de
booch, OMT (Rumbaugh) e OOSE (Jacobson) fundindo­os numa
Nú
mer
única linguagem de modelagem comum e largamente utilizada. O UML pretende ser a linguagem de modelagem padrão para
modelar sistemas concorrentes e distribuídos.
O UML ainda não é um padrão da indústria, mas esse objetivo está a tomar forma sob os auspícios do Object
Management Group (OMG). O OMG pediu informação acerca de metodologias orientadas a objetos que pudessem criar uma
linguagem rigorosa de modelização de software. Muitos líderes da indústria responderam na esperança de ajudar a criar o
padrão.
5. Linguagem de Especificação XML
A linguagem Extensible Markup Language (XML) é o resultado do trabalho de um grupo de especialistas
estabelecido em 1986 pelo W#C, com o objetivo de propor uma simplificação de SGML que fosse voltada ‘as necessidades
específicas da Web.
XML é similar a HTML em vários aspectos, também é uma linguagem expressa em arquivos de texto puro (ASCII),
concebida especialmente para armazenar e transmitir dados. Como uma representante do paradigma das linguagens de
especificação, trata­se de texto com marcas embutidas que qualificam cada unidade de informação (também referidas como
entidade, elementos, ou objetos) contida no texto.
Assim, um arquivo XML é constituído de elementos. Como sempre, cada elemento possui uma marca inicial (como
<titulo> ou <title>), uma marca final (como </titulo> ou </title>) e a informação propriamente dita entra duas marcas.
Porém, diferentemente de HTML, XML não propõe um número fixo de marcas. Um elemento XML pode ser
marcado da forma que o autor do documento bem entender, ou seja, com o termo que melhor descreve a informação na sua
opinião.
As diversas entidades de informação contidas em um documento XML (definidas pelas marcas) são interpretadas
por aplicações (um navegador Web, por exemplo) e organizadas em um modelo de Objetos onde permanecem acessíveis à
aplicação. A aplicação pode assim ativar ações sobre entidades de informação.
Também como já foi visto, ao invés de descrever como os dados devem ser mostrados, as marcas indicam o que cada
dado significa. Qualquer agente (humano ou software) que receba este documento pode decodificá­lo e usar como lhe convier.
Como acontece em HTML, em XML as marcas podem ser embutidas umas dentro de outras. Geralmente usa­se isso
para determinar uma informação com significado mais específico dentro do texto.
Nú
mer
Os aspectos semânticos das informações contidas em um documento só podem ser interpretados dentro do contexto
de uma comunidade. Quanto maior a comunidade, menor é o conjunto de definições compartilhadas; quanto menor e mais
focalizada a comunidade, maior será este conjunto.
Como a semântica depende das definições estabelecidas em uma comunidade específica, é razoável que para se
melhorar a comunicação nestas comunidades, deva existir uma abertura nas linguagens para as definições específicas de cada
comunidade. XML torna isso possível, ou seja, torna­se viável se capturem ontologias comunitárias sob a forma de DTD’s e
assim promover uma descentralização natural do controle das especificações das linguagens de especificação.
Acredita­se que a emergência de estruturas de dados mais ricamente anotadas (ou especificadas) pode ser o
catalisador que falta para a concepção de novas aplicações que promoverão o armazenamento, compartilhamento e
processamento de conhecimento.
Esta abertura é o principal atrativo da linguagem XML. Inúmeras comunidades já estão usando XML para
capturar os conhecimentos específicos de suas disciplinas.
6. Linguagem de Especificação TEX
TEX consiste de um compilador (um programa que processa um arquivo texto escrito seguindo regras de uma
linguagem específica, gerando um “arquivo­resultado”), que processa um arquivo com extensão .TEX contendo seu
documento escrito em algum formato aceito por TEX (os formatos mais usados são o “Plain TeX” e “LaTeX”), e gera um
arquivo com mesmo nome mas com extensão .DVI, contendo seu documento pronto para ser visualizado na tela do
computador ou impresso. Obviamente você necessita um editor de texto para escrever esse arquivo TEX. Estão disponíveis
vários editores que se acomodam muito bem na edição de documentos (La)TeX, como por exemplo TeXnic Center, TeXshell,
WinShell, Winedt, (X)Emacs, TeXtures (mac). TEX tornou­se popular no meio científico por permitir transformar todo tipo de escrito em artigos, livros,
relatórios, poesia, cartas, etc, e outros formatos poderiam ser completamente determinados pelo escritor através de uma rica
linguagem de tipografia. Seu inseparável aliado, METAFONT, permitia desenhar todos os caracteres (letras e símbolos
matemáticos mais diversos) para seus textos. Por essas qualidades, TEX tornou­se o sistema de processamento de texto
“Standard” em muitos institutos e laboratórios de pesquisa. Está disponível para uma vasta gama de plataformas, desde
Nú
mer
mainframes, Unix e VMS workstations até microcomputadores como PC's e Macintoshes. Excelentes “previewers” estão
disponíveis para estas plataformas. TEX chegou a uma versão muitíssimo estável. De fato os últimos “bugs” que foram descobertos não poderiam afetar
usuários que usam TEX para seu fim, produzir páginas de texto, sendo sensíveis apenas aos desenvolvedores. Então
Donald Knuth decidiu congelar o desenvolvimento de TEX. Hoje TEX está na versão 3.14159 (sexta versão, pois o
numero da versão é contado pelo número de dígitos de pi). 7. Referências:
http://www.latex­project.org.
http://pt.wikipedia.org/wiki/XML
http://pt.wikipedia.org/wiki/Linguagem_de_Modelagem_Unificada
http://pt.wikipedia.org/wiki/Especial:Search?search=uml&go=Artigo
www.geocities.com/wallstreet/floor/5815/guide.htm
www.sgml.u­net.com/
www.cs.caltech.edu/~adam/papers/xml/ascent­of­xml.html
www.ne­dev.com/ned­01­1998/ned­01­xml.t.html
Nú
mer
Download

Linguagens de Especificação Universidade Federal Fluminense