Artigo: Paradigmas De Linguagem De Progamação. Pesquise 836.000+ trabalhos acadêmicos Show
Por: • 25/10/2014 • 364 Palavras (2 Páginas) • 4.878 Visualizações Página 1 de 2 EXERCÍCIOS 1 1. Porque é útil que o programador tenha algum embasamento em projeto de linguagens, ainda que talvez ele jamais projete de fato uma linguagem de programação? R: Aumento da capacidade de expressar ideias, maior conhecimento para a escolha de linguagem apropriadas, capacidade aumentada para aprender novas linguagens, entender melhor a importância da implementação, aumento da capacidade de projetar novas linguagens e avanço global da computação. 2. Como o conhecimento das características da linguagem de programação pode beneficiar toda a comunidade de computação? R: Com o conhecimento das linguagens de programação, talvez as linguagens melhores substituiriam mais rapidamente as linguagens ruins 3. Que linguagem de programação dominou a computação cientifica ao longo dos últimos 40 anos? R: A linguagem de programação que dominou a computação cientifica nos últimos 40 anos foi a Fortran. 4. Que linguagem de programação as aplicações comerciais ao longo dos últimos 40 anos? R: A linguagem de programação que dominou a computação comercial nos últimos 40 anos é a COBOL. 5. Que linguagem de programação dominou a inteligência artificial ao longo dos últimos 40 anos? R: A linguagem de programação que dominou a inteligência artificial nos últimos 40 anos foi a Lisp. 6. Em qual linguagem o UNIX foi escrito? R: O UNIX foi escrito na linguagem de montagem (Assembly) em 1969, porém em 1973 foi reescrita usando a linguagem C. 7. Qual é a desvantagem de haver demasiados recursos em uma linguagem? R: Overhead (processamento ou armazenamento em excesso) e a falta de flexibilidade para compensar esse problema, linguagens complexas que tendem a ter um alto custo. 8. Como uma sobrecarga de operador definida pelo usuário prejudica a legibilidade de um programa? R: Quando o usuário cria suas próprias sobrecargas. 9. O que é manipulação de exceções? R: Quando ocorre uma condição que altera o fluxo normal do programa este mecanismo de tratamento isola o código responsável pelo erro em blocos separados, deixando assim o código principal limpo. 10.Por que a legibilidade é importante para a capacidade de escrita? R: A legibilidade afeta a confiabilidade de um programa, tanto na fase da escrita quanto nas manutençõe, programas de difícil leitura complicam também sua escrita e sua modificação. Quanto mais fácil é escrever um programa, mais possibilidade ele tem de ser correto. ... Disponível apenas no TrabalhosGratuitos.com Por que eu devo ler este artigo:Neste artigo veremos porque � t�o importante estudar os conceitos relacionados �s linguagens de programa��o. Al�m disso, iremos fazer uma an�lise completa da Delphi Language atrav�s de uma lista de crit�rios pelos quais podemos fazer um julgamento da linguagem. Ser�o feitas an�lises referentes a Legibilidade, Capacidade de Escrita e Confiabilidade da linguagem, afim de descobrir quais seus pontos fortes e fracos. Por fim, veremos os itens que influenciam no custo de ado��o de determinada linguagem para o desenvolvimento de sistemas. Saiba mais: Curso de Delphi A hist�ria do Delphi come�a em 1970 quando foi lan�ada a linguagem procedural Pascal, que herdou diversas caracter�sticas do ALGOL. Na d�cada de 80 se popularizou atrav�s do Turbo Pascal e na d�cada de 90 surgiu o conceito do pascal orientado a objetos (Object Pascal). Em 1993 a Borland iniciou o desenvolvimento de um projeto para a cria��o de um ambiente visual para criar aplica��es Windows utilizando a linguagem Object Pascal, que foi batizado de Delphi e lan�ado no ano de 1995. O arquiteto do projeto e que ficou conhecido como �pai� do Delphi foi Anders Heilsberg (tamb�m criador da linguagem C#). Desde o in�cio, Delphi sempre foi pioneiro em tecnologias para o desenvolvimento de softwares, como conex�o com banco de dados, programa��o Orientada a Objetos e ambiente de desenvolvimento r�pido (RAD - Rapid Application Development). A vers�o 2 do Delphi coincidiu com o Windows 95 e o desenvolvimento para 32 bits, mas como ficamos acostumados, Delphi era totalmente compat�vel com vers�o 16 bits. Na vers�o 3, Delphi inovou mais uma vez, pois foi a primeira ferramenta a ter suporte para criar aplica��es multicamadas em um ambiente RAD. O Delphi 4 trouxe suporte aos mais recentes padr�es de mercado naquele momento: CORBA, ORACLE 8, al�m de cria��o de controles ActiveX/Active Forms. O Delphi 5 inovou com o suporte a manipula��o f�cil de arquivos XML, al�m de suporte a nova tecnologia de acesso a dados: ADO. Al�m disso, apareceram novas ferramenta como o TeamSource para controle de vers�o. A vers�o 6, trouxe suporte a Web Services, al�m de BizSnap, DataSnap e WebSnap. Juntamente com a vers�o 6, nasceu o Kylix, primeira ferramenta RAD para Linux, para cria��o de aplicativos cross-plataform. No Delphi 7 aparecem os primeiros ind�cios de suporte a nova plataforma que estava nascendo, o .NET. Nessa vers�o, temos um compilador para .NET, mas o ambiente do Delphi ainda n�o oferecia suporte, ter�amos que criar aplica��es totalmente manuais, sem as facilidades de componentes e modelagem r�pida. Nesta vers�o n�o temos mais o Object Pascal como linguagem, mas sim a Delphi Language, mudan�a de nome para fins comerciais. O Delphi 8 suportava apenas aplica��es .NET, o que confundiu alguns desenvolvedores e seu IDE mudou drasticamente, sendo mais pesado e consumindo muita mem�ria. A vers�o 2005 do Delphi prometia ser a primeira ferramenta a ter ambiente de desenvolvimento para Win32 e .NET (Delphi e C#). Teve in�cio a arquitetura ALM desenvolvida pela Borland, onde temos ferramentas para controlar todo o clico de vida do projeto, desde requisitos at� a finaliza��o do mesmo. O Delphi 2006 foi a �ltima vers�o da Borland, que juntamente com o Delphi 2007, trouxe algumas novidades no desenvolvimento para .NET e Win32, com a cria��o de novos componentes para suporte ao Windows Vista e suporte a novas vers�es do .NET Framework. No Delphi 2009, j� tivemos modifica��es significativas, onde n�o existe mais o mesmo ambiente para Win32 e .NET. A CodeGear, ent�o detentora do Delphi, em uma solu��o radical (no olhar de alguns desenvolvedores), aproveitou que o Visual Studio (principal concorrente) �liberou� o seu ambiente de desenvolvimento (shell) para outras linguagens e utilizou o mesmo e come�ou a disponibilizar o Delphi Prism. Imagine desenvolver em Pascal (na verdade se chama Oxygene, da RemObjects, parceira da Embarcadero), usando o Visual Studio. Foi um verdadeiro choque na comunidade. Na defesa da Embarcadero, a vantagem de usar o ambiente do Visual Studio, seria que o desenvolvedor estaria sempre com a vers�o mais recente do .NET Framework, al�m de tecnologias como LINQ, WPF, ASP.NET, Windows Forms e etc. Mesmo assim, a vers�o Win32 do Delphi 2009 trouxe novidades como suporte a Generics, M�todos An�nimos e Ribbon. No Delphi 2010, tivemos o suporte a cria��o de aplica��es touchpad, para criar interfaces onde o usu�rio interage com a mesma usando toque no monitor, uma grande novidade. Na sequ�ncia temos as vers�es XE e XE2. O XE trouxe suporte ao Windows Azure (desenvolvimento em nuvens) e novidades no DataSnap. O XE2 trouxe novidades significativas como suporte a desenvolvimento de projetos em 64 bits, aplica��es multiplataformas para Windows e OSx (Mac), cria��o de aplica��es 3D e HD com um framework chamado FireMonkey e um recurso de LiveBindings para a liga��o de dados aos componentes, entre outros. Na vers�o XE3 tivemos o lan�amento da interface Metropolis UI, para desenvolvermos interfaces gr�ficas semelhantes �s existentes no Windows 8, onde podemos inclusive converter de forma autom�tica interfaces VCL tradicionais para o Metropolis. Tamb�m foi evolu�do o recurso de LiveBindings, criando uma forma gr�fica para fazer a liga��o entre componentes de tela e os dados. Na vers�o XE4 do Delphi temos o suporte ao desenvolvimento de aplicativos para dispositivos m�veis para iOS e no XE5 para Android. J� na vers�o XE6 temos apenas a melhoria nos recursos existentes e uma remodelagem da interface gr�fica do IDE. Porque estudar os conceitos de uma Linguagem de Programa��o� normal que os estudantes se perguntem: por que estudar os conceitos de linguagens de programa��o? Essa � uma pergunta normal, pois existem v�rios estudos que se pode fazer de uma linguagem, sua sintaxe, suas bibliotecas nativas, frameworks e plug-ins extras. Mas existe uma s�rie de benef�cios que podem ser conseguidos ao estudar os conceitos de uma linguagem de programa��o, sendo alguns deles os seguintes:
Treinamentos e cursos espec�ficos de determinada linguagem de programa��o v�o diretamente � sintaxe da linguagem sem oferecer um embasamento te�rico que indique que aquela linguagem � mais adequada para determinados tipos de problemas. O fato � que as linguagens de programa��o n�o s�o boas para todos os tipos de projetos de software, sempre existem tipos de projetos onde s�o mais fracas ou mais fortes. Quando estudamos seus conceitos, conseguimos analisar onde devemos aplicar determinada linguagem e quais os projetos dever�amos considerar a ado��o de outra linguagem a fim de facilitar o desenvolvimento e manuten��o dos sistemas.
Considerando um exemplo pr�tico, em sistemas que adotam o paradigma orientado a objetos, temos o mecanismo de heran�a de classes, neste caso � muito mais importante sabermos como aplicar corretamente a heran�a na modelagem de um sistema do que a sintaxe espec�fica de determinada linguagem. Quem desenvolve em mais de uma linguagem de programa��o sabe que � bastante natural a passagem de uma sintaxe para outra, desde que a mesma possua o mesmo paradigma, por exemplo, Delphi e C#.
Determinados tipos de erros que ocorrem nos sistemas somente s�o identificados por desenvolvedores mais experientes que conseguem ver al�m daquela implementa��o.
Crit�rios de Avalia��o de Linguagens de Programa��oExistem diversos crit�rios que podem ser adotados a fim de fazer uma avalia��o de uma linguagem de programa��o, dificilmente os cientistas da computa��o entram em consenso sobre quais s�o os crit�rios mais adequados para fazer avalia��es da sintaxe das linguagens, por�m alguns itens b�sicos s�o praticamente um consenso entre quase todos. Estes s�o os apresentados a seguir, na Tabela 1 que mostra em quais crit�rios as caracter�sticas de uma linguagem se enquadra.
Tabela 1. Crit�rios de avalia��o LegibilidadeSem d�vida um dos crit�rios de avalia��o de linguagens de programa��o mais importantes � o da legibilidade, que � o grau de facilidade com que os algoritmos criados naquela linguagem podem ser lidos e entendidos. A facilidade de manuten��o de aplica��es est� diretamente ligada � legibilidade do c�digo, por isto essa se torna um dos crit�rios mais importantes de avalia��o. A legibilidade de um programa tamb�m est� ligada ao dom�nio do problema em quest�o, pois quando determinada linguagem de programa��o n�o foi projetada para determinado tipo de problema, � bastante prov�vel que seu c�digo fique confuso, tornando dif�cil de ser lido e interpretado. Por exemplo, se quisermos utilizar o Delphi para criarmos aplica��es web de grande porte, sabemos que teremos dificuldade, pois o Delphi na sua ess�ncia n�o foi desenvolvido para atender esse nicho de mercado. Agora se quisermos criar aplica��es Desktop complexas e com diversos formul�rios interagindo entre sim, provavelmente teremos uma aplica��o simples e clara, pois � onde o Delphi se destaca desde o seu surgimento. SimplicidadeA simplicidade de uma linguagem de programa��o est� diretamente ligada a sua legibilidade, isto porque uma linguagem com uma sintaxe extensa � muito mais dif�cil de ser aprendida do que uma linguagem que possua poucos artefatos b�sicos. A maioria dos desenvolvedores geralmente aprende apenas parte de uma linguagem de programa��o, nunca ela no seu todo, ignorando alguns recursos. Este tipo de atitude � tomada principalmente para que n�o seja necess�rio um estudo mais profundo da linguagem, tornando o in�cio do desenvolvimento r�pido, trazendo resultados tamb�m r�pidos. O problema desta abordagem � que outros desenvolvedores podem ter aprendido outra parte da linguagem, diferente daquela que aprendeu o desenvolvedor do sistema, tornando dif�cil a compreens�o do c�digo posteriormente. Um exemplo no mundo Delphi deste problema pode ser visto quando temos alguns desenvolvedores que s� sabem trabalhar de maneira procedural, com a adi��o de componentes e codifica��o de eventos. Outros desenvolvedores podem ter aprendido trabalhar de forma orientada a objetos, com a instancia��o de classes e o seguimento de boas pr�ticas de programa��o, como princ�pios SOLID e padr�es de projeto. Um segundo ponto que realmente complica em termos de simplicidade de uma linguagem de programa��o � o fato de ela ter diversas maneiras de realizar uma �nica tarefa. Por exemplo, em C para incrementarmos uma vari�vel num�rica simples existem diversas maneiras, conforme pode ser visto na Listagem 1.
Listagem 1. Incrementando uma vari�vel simples em C Veja que apesar de em determinadas situa��es esses operadores terem significados diferentes, quando s�o aplicados a vari�veis simples individualmente eles t�m o mesmo prop�sito, incrementar em um a vari�vel. Neste ponto o Delphi traz mais simplicidade em rela��o a outras linguagens, pois existe uma �nica forma nativa do compilador para incrementar em um uma vari�vel, como mostrado a seguir:
Nota: Muitos podem estar pensando que existe sim outra maneira de incrementarmos em um uma vari�vel num�rica em Delphi, atrav�s do procedure Inc, por�m devemos observar que o Inc n�o � um recurso nativo disponibilizado pelo compilador e sim um procedimento implementado na unit System, o que s�o coisas totalmente diferentes. Outra caracter�stica que prejudica a simplicidade de uma linguagem de programa��o � a possibilidade de fazermos sobrecarga de operadores na qual um �nico s�mbolo pode ter mais de um significado. Embora seja um recurso �til, pode levar ao desenvolvimento de c�digos complexos, principalmente se n�o for adotado com cautela por parte do criador da sobrecarga. Um exemplo simples de sobrecarga � a do s�mbolo de soma (+), onde ele pode tanto somar inteiros ou concatenar strings. Nestes casos � bastante indicado o uso de sobrecarga de operadores, pois torna a linguagem mais simples e enxuta. Nota: O recurso de sobrecarga de operadores � suportado no Delphi desde a vers�o 2005 (somente para .NET) e a partir de 2006 para Win32. Este recurso foi adicionado na �poca pela Borland, principalmente para manter a compatibilidade com a plataforma .NET. OrtogonalidadeA ortogonalidade numa linguagem de programa��o significa a quantidade pequena de instru��es primitivas combinado com um n�mero pequeno de maneiras para construir estruturas de controle e la�os de repeti��o. Na pr�tica, significa o n�mero de regras que determinada linguagem possui. Linguagens com baixa ortogonalidade possuem muitas exce��es �s regras da linguagem, j� linguagens com alta ortogonalidade, como o Delphi possuem poucas exce��es �s regras b�sicas. Como exemplo de regras, podemos definir o bloco begin/end exigido pelo Delphi nas estruturas de controles, rotinas e la�os de repeti��o. Esta � uma regra �nica de bloco, sendo a �nica exce��o � regra o la�o de repeti��o Repeat, onde n�o somos obrigados a informar o begin/end, saindo um pouco da regra geral da linguagem. A ortogonalidade tamb�m est� diretamente ligada com a simplicidade, quanto mais ortogonal � a linguagem de programa��o, menos exce��es existir�o quanto �s regras da linguagem. Menos exce��es levam a uma codifica��o mais regular, tornando a linguagem mais f�cil de ser lida, entendida e aprendida. Outro exemplo de exce��o � regra existente na Delphi Language � o fato de que todas as instru��es obrigatoriamente devem ser finalizadas com ponto e v�rgula (;), com a exce��o de quando esta instru��o estiver dentro de um comando condicional como o IF e for um comando �nico, conforme pode ser visto na Listagem 2.
Listagem 2. Exce��o � regra geral no Delphi Instru��es de ControleAt� o final da d�cada de 60 existiam linguagens de programa��o que tinham muito pouca legibilidade, principalmente em rela��o �s instru��es de controle, onde o recurso utilizado era o famoso GOTO para conseguirmos mudar o fluxo de execu��o de um algoritmo. No in�cio da d�cada de 70, devido � falta de legibilidade destas linguagens, surgiram iniciativas para resolver estes problemas. Foi a� que surgiram as linguagens de programa��o estruturadas, principalmente pela falta de legibilidade que o comando Goto causava nos programas da �poca. Uma linguagem de programa��o Top-Down, ou seja, que pode ser lida de cima para baixo, � muito mais f�cil de ser entendida do que termos que pular de uma instru��o para outra de forma indiscriminada. A maioria das linguagens de programa��o projetadas a partir do in�cio da d�cada de 70, devido suas boas estruturas de controle, praticamente eliminou a necessidade de utiliza��o do comando Goto. Apesar de geralmente ele ainda estar dispon�vel na maior parte das linguagens de programa��o, ele � muito pouco utilizado. Falando especificamente de Delphi, a maioria dos desenvolvedores nem sabe da exist�ncia e funcionamento do comando Goto, mas ele existe na Delphi Language. Na Listagem 3 podemos visualizar um exemplo simples do funcionamento.
Listagem 3. Utiliza��o do Goto em Delphi No exemplo temos a defini��o de um Goto nas linhas 7 e 8, j� na linha 14 estamos indicando que queremos saltar para a instru��o GotoLabel na linha 17, fazendo com que seja interrompido o la�o de repeti��o. Tipos de DadosUm sistema de informa��es produz resultados atrav�s da manipula��o de dados. Um item determinante para indicar a facilidade com que eles poder�o efetuar tal tarefa diz respeito aos tipos de dados oferecidos pela linguagem utilizada se encaixarem com o dom�nio do problema real. Por este motivo � muito importante uma linguagem possuir uma gama muito boa de tipos de dados e estruturas. Os tipos de dados b�sicos mais comuns da linguagem e que n�o s�o criados com base em outros s�o chamados de tipos primitivos. O fato de uma linguagem de programa��o fornecer tipos de dados primitivos adequados para vari�veis � outra caracter�stica que traz bastante legibilidade. Por exemplo, existem linguagens como C que n�o possuem o tipo de dado Booleano, sendo necess�rio os desenvolvedores utilizarem outros tipos de dados. Em linguagens com essa caracter�stica geralmente define-se zero para false e um para verdadeiro. Ao nos depararmos com instru��es como estas no meio do c�digo, n�o temos a clareza do que realmente ela representa dentro da aplica��o, sendo necess�rio uma an�lise da documenta��o do c�digo para termos a convic��o de que ela representa uma indica��o de verdade. Al�m dos tipos de dados primitivos comuns existem outros dois tipos de dados n�o escalares que s�o os vetores e os registros. Projeto da SintaxeA sintaxe de uma linguagem de programa��o tem influ�ncia direta na legibilidade de uma aplica��o. Existem algumas escolhas na hora de se projetar a linguagem que pode aumentar ou diminuir a legibilidade dos programas:
No caso do Delphi, felizmente n�o temos este tipo de problema, j� que podemos ter um n�mero ilimitado de caracteres para representar os identificadores (nomes de vari�veis, constantes, fun��es, etc.).
Isso prejudica a legibilidade dos c�digos, pois os blocos de c�digos terminam sempre da mesma maneira, tornando dif�cil �s vezes determinar qual o grupo de instru��es est� sendo finalizado em determinado momento (Listagem 4). Algumas linguagens resolvem este problema criando uma sintaxe distinta para cada tipo de bloco, usando, por exemplo, end if e end loop para diferenciar os blocos de c�digo. Outra caracter�stica das palavras reservadas � a de se a linguagem de programa��o permite ou n�o us�-las para nome de vari�veis nos programas. Se permite, pode trazer uma grande confus�o, pois muitas vezes n�o saber�amos se determinada instru��o se refere a uma instru��o nativa do compilador ou o nome de uma vari�vel. O Delphi neste quesito n�o deixa a desejar, j� que somos impedidos de criar nomes de vari�veis com palavras reservadas, ocorrendo erro em tempo de compila��o se assim o fizermos.
Um dos �nicos itens em que o Delphi falha neste quesito � no uso da palavra Interface. Ela pode tanto representar a cria��o de uma Interface na orienta��o a objetos, quanto pode representar um bloco de interface de declara��es de classes e m�todos dentro de uma unit, conforme pode ser visto na Listagem 5 (linhas 2 e 4).
Listagem 4. Falta de legibilidade no final de blocos
Listagem 5. Mesma instru��o representando duas fun��es diferentes Nota: Alguns plug-ins como o CnPack oferecem um mecanismo de melhoria no entendimento de blocos begin/end aninhados, fazendo uso de cores diferentes para cada tipo de estrutura de controle, aumentando a legibilidade dos c�digos e facilitando o entendimento da sintaxe. Na se��o Links est� dispon�vel o endere�o para download dessa ferramenta. Facilidade de EscritaA facilidade de escrita representa o qu�o f�cil � o desenvolvimento de um programa para um determinado dom�nio. Isso significa que determinada linguagem de programa��o pode ter uma facilidade de escrita para um determinado tipo de problema e outras n�o. � o t�pico caso onde dizemos que n�o existe uma linguagem melhor ou pior, tudo depende do tipo de sistema que deseja se deseja desenvolver, cabendo ao desenvolvedor analisar qual � a linguagem mais adequada para cada situa��o. N�o se pode comparar a facilidade de escrita de duas linguagens de programa��o escolhendo um dom�nio espec�fico. Por exemplo, � muito mais f�cil criar uma aplica��o baseada em interfaces gr�ficas para Windows Desktop utilizando Delphi do que utilizando a linguagem C e isso n�o significa que o Delphi seja uma linguagem muito mais f�cil de escrita, � que o Delphi foi criado para este fim. O mesmo se pode falar de aplicativos de sistema de baixo n�vel, usando C a tarefa � bem mais simples de que se fossemos utilizar o Delphi, pois o C foi projetado para atender este fim. Suporte a Abstra��oA abstra��o � um item fundamental nos atuais projetos de linguagens de programa��o, pois ela possibilita definirmos estruturas e opera��es complexas de modo a permitir que muitos dos detalhes sejam ignorados. O n�vel de abstra��o permitido por uma linguagem e a naturalidade como ela � descrita tem um grande impacto na facilidade de escrita. Podemos ter dois tipos de abstra��es: processos e dados. Como exemplo de abstra��o de processos podemos citar a possibilidade de criarmos classes e m�todos para realizarmos a tarefa de exportar determinado conjunto de informa��es para o Excel. Se n�o tiv�ssemos suporte a abstra��o, esta tarefa teria de ser replicada todas as vezes que fosse necess�rio realizar esta tarefa, tornando o c�digo mais polu�do. Quanto � abstra��o de dados, podemos usar como exemplo uma lista de informa��es de um aluno, como nome, idade e curso. Se utiliz�ssemos uma linguagem que n�o suporta abstra��o de dados ter�amos que criar tr�s vetores e sincroniz�-los de forma que cada posi��o dos vetores representasse a informa��o referente �quele aluno. No Delphi temos a possibilidade fazer abstra��o destes dados utilizando uma estrutura (records) ou uma classe para isso, conforme Listagem 6.
Listagem 6. Abstra��o de dados em Delphi ExpressividadeA expressividade de uma linguagem de programa��o representa as instru��es que sua sintaxe permite de forma a tornar a codifica��o mais simples e enxuta. Isso se consegue com a adi��o de operadores que tornam a codifica��o mais elegante e menos verbosa, simplificando a codifica��o. Em algumas linguagens de programa��o temos a op��o de fazer o auto incremento utilizando a instru��o cont++, enquanto em outras como o Delphi necessitamos de uma instru��o maior (cont := cont + 1), o que torna a linguagem menos expressiva. Saiba mais: Criando minha primeira aplica��o em Delphi Outro recurso das linguagens de programa��o modernas � o for, que tamb�m torna as linguagens mais expressivas, devido ao fato de simplificar bastante a tarefa de criarmos la�o de repeti��o que antes s� era permitido atrav�s de comandos while. ConfiabilidadeA confiabilidade de um programa se refere � possibilidade da linguagem de programa��o oferecer alguns recursos que os desenvolvedores possam utilizar, de forma a evitar erros inesperados e bugs nos aplicativos. Os itens de confiabilidade analisados no artigo ser�o o da verifica��o de tipos, tratamento de exce��es e restri��o de ponteiros na linguagem. Verifica��o de TiposA verifica��o de tipos � um recurso existente para garantir que os operandos de um operador sejam de tipos compat�veis. Tipos compat�veis s�o aqueles que s�o v�lidos para o operador, j� tipos incompat�veis se referem � aplica��o de um operador a um operando de tipo impr�prio. A verifica��o de tipos � um item muito importante em rela��o � confiabilidade de uma linguagem de programa��o. Ela consiste na execu��o de testes de valida��o por parte do compilador para detectar erros de atribui��o �s vari�veis. � muito melhor e mais produtivo quando temos a detec��o de erros de atribui��o em tempo de compila��o do que em tempo de execu��o, isto porque torna mais r�pida a corre��o e evita que c�digos que n�o tenham sido testados adequadamente acabem indo para ambientes de produ��o com erros que ser�o somente detectados posteriormente pelo usu�rio. Linguagens que possuem verifica��o de tipos de forma din�mica, como o JavaScript, permitem somente a valida��o dos tipos em tempo de execu��o. Esta forma de valida��o por um lado traz maior flexibilidade de desenvolvimento para o programador, mas por outro lado traz uma menos seguran�a quanto � precis�o dos dados. Nos dias de hoje as linguagens fortemente tipadas possuem uma admira��o muito grande por parte dos desenvolvedores de software. Linguagens fortemente tipadas t�m seus tipos definidos de forma est�tica, ou seja, uma determinada vari�vel possui um �nico tipo fixo especificado antes da compila��o. O Delphi neste sentido atende a este quesito de seguran�a, pois a verifica��o de tipos � feita durante a compila��o dos programas desenvolvidos. A exce��o fica por parte do tipo Variant, onde � permitido fazer a atribui��o de qualquer valor para vari�veis deste tipo. Tratamento de Exce��esGrande parte dos hardwares s�o capazes de detectar erros em tempo de execu��o, como o estouro de um tipo inteiro. Em linguagens que n�o s�o capazes de detectar erro, o que ocorre simplesmente � o encerramento do programa abruptamente e o controle passa para o sistema operacional. A rea��o do sistema operacional quando ocorre um erro inesperado e o programa se fecha � a de exibir uma mensagem de erro diagnosticando o problema ocorrido. Tal informa��o pode ser muito �til ou n�o fazer nenhum sentido para o usu�rio do programa. O recurso de tratamento de exce��es � a habilidade que uma linguagem de programa��o tem de interceptar erros em tempo de execu��o e trat�-los, continuando com o programa sem que o mesmo precise ser reiniciado. O tratamento de exce��es � um recurso indispens�vel em qualquer linguagem de programa��o e o Delphi possibilita este tratamento de modo simples, conforme Listagem 7.
Listagem 7. Tratamento de Exce��es Delphi Apenas para esclarecimento, na linha 5 temos a instru��o Raise, que tem a fun��o de propagar a exce��o para o bloco externo, ou seja, ela informa ao compilador que n�o ser� ali feito o tratamento de exce��o e sim no bloco try/except externo. Existe um segundo bloco de tratamento de exce��o chamado try/finally, que foi criado para a libera��o segura de recursos. Todo o c�digo que estiver contido dentro do bloco finally ser� executado, independente do que ocorrer no interior do bloco try. Na Listagem 8 temos um exemplo de utiliza��o.
Listagem 8. Uso do Try/Finally no Delphi No exemplo mostrado temos a libera��o do objeto Texto no bloco finally, para que independente do que ocorrer no bloco try, no caso a adi��o de informa��es, o objeto seja liberado da mem�ria, evitando a ocorr�ncia de vazamento de mem�ria. Ponteiros RestritosPonteiros s�o tipos de dados que se referem diretamente a um outro valor alocado em outra posi��o de mem�ria atrav�s de seu endere�o. Nos dias atuais a utiliza��o de ponteiros principalmente em linguagens de programa��o de alto n�vel � muito rara. Algumas linguagens como o Java nem suportam mais este recurso. O fato de n�o suportar o uso de ponteiros, segundo alguns cientistas da computa��o, torna a linguagem mais segura e confi�vel. No Delphi utilizamos o operador ^ (circunflexo) para declarar uma vari�vel do tipo ponteiro. Usamos tamb�m o operador @ precedendo vari�veis �normais� para obter o endere�o delas. O inverso de @ seria usar ^ depois de uma vari�vel-ponteiro, para que possamos acessar o seu valor. Um ponteiro rec�m declarado que n�o aponta para nenhum lugar tem o valor nil. Na Listagem 9 temos um exemplo simples de emprego de ponteiros na Delphi Language.
Listagem 9. Uso de ponteiros no Delphi Como os ponteiros t�m a capacidade de acessar vari�veis que n�o s�o explicitamente declaradas para ele, h� uma possibilidade maior de erros de codifica��o. Apesar disso, o poder oferecido pelos ponteiros � t�o grande que em determinadas tarefas, principalmente aquelas referentes ao desenvolvimento de sistemas b�sicos, o uso de ponteiros pode se mostrar bastante �til. Custo da LinguagemO custo de uma linguagem de programa��o se refere a muitos pontos que ser�o elencados nos pr�ximos par�grafos. O primeiro ponto a ser analisado � o custo que ter� o treinamento de desenvolvedores para a linguagem escolhida, que depende muito da simplicidade e da ortogonalidade da sintaxe, al�m, � claro, do n�vel atual dos desenvolvedores que ser�o treinados. Linguagens mais poderosas e com maiores recursos despendem maior investimento de dinheiro e tempo para aprend�-las. Em segundo lugar temos o custo de desenvolver aplica��es para esta linguagem, o que depende da facilidade de escrita, a qual tamb�m depende do escopo do problema que deve ser solucionado. Os esfor�os empregados no desenvolvimento de linguagens de programa��o de alto n�vel e IDEs robustos foram feitos para que fosse diminu�do o custo de desenvolvimento de softwares. Tanto o custo de treinar desenvolvedores quanto os de escrever programas na linguagem podem ser minimizados na utiliza��o de um bom ambiente de desenvolvimento, que possibilite a automatiza��o de tarefas b�sicas e ofere�a recursos de facilidades na escrita de c�digo. O terceiro custo a ser analisado � o de compilar aplica��es na linguagem. No passado compiladores demoravam bastante na tarefa de fazer a convers�o do c�digo da linguagem no c�digo de m�quina que seria executado no hardware. Hoje, felizmente possu�mos compiladores r�pidos, principalmente tamb�m pelo avan�o do n�vel de capacidade dos hardwares. O quarto ponto � o custo de executar programas escritos em uma linguagem, que est� diretamente associado ao projeto dela. Uma linguagem que faz muitas verifica��es de tipos em tempo de execu��o, por exemplo, n�o ser� r�pida, mesmo que o compilador seja muito bom. Hoje em dia o tempo de execu��o de um aplicativo j� n�o � prioridade no projeto de linguagens, principalmente com os avan�os a n�vel de hardware. No passado, devido principalmente ao baixo n�vel de mem�ria, os programas deviam ser cuidadosamente escritos e em um n�vel mais baixo para obter o melhor dos recursos existentes das m�quinas limitadas. Geralmente h� de se fazer uma escolha entre o custo de compila��o de um programa e a velocidade de execu��o do mesmo. Existe uma fase da compila��o chamada otimiza��o, que � uma t�cnica utilizada pelos compiladores para diminuir o tamanho e aumentar a velocidade da execu��o de um determinado programa. Se pouca otimiza��o for feita, a compila��o � bem mais r�pida, por�m a execu��o do programa se torna mais lenta. Por�m, se for despendido bastante tempo para otimiza��o, a compila��o ser� mais demorada, mas teremos um programa execut�vel mais r�pido. O quinto item a ser considerado diz respeito ao custo de utiliza��o da linguagem e/ou IDE de desenvolvimento. Uma linguagem cujas ferramentas de desenvolvimento s�o caras ou criadas apenas para poucos tipos de hardware ter�o menores chances de se tornarem populares no mundo do desenvolvimento. O sexto fator se refere ao custo de uma confiabilidade baixa. Se um sistema cr�tico falha, como o de controle de voos, por exemplo, o custo de ado��o desta linguagem pode se mostra muito alto. Linguagens que possuem um hist�rico de casos de usos onde houve s�rios problemas nos seus sistemas tendem a cair em desuso. O �ltimo fator a ser considerado em rela��o ao custo � o quando o sistema desenvolvido em determinada linguagem ir� depender de manuten��es, inclus�o de funcionalidades e corre��o de erros. O custo de manuten��o de uma linguagem de programa��o est� diretamente ligado � legibilidade da mesma e de um bom desenvolvimento por parte do desenvolvedor. A facilidade de manuten��o � um fator crucial nos dias atuais, pois se calcula que atualmente o custo de manuten��o supera em at� em quatro vezes o custo do desenvolvimento inicial do sistema. De todos os fatores que influenciam no custo de desenvolver em determinada linguagem de programa��o, os mais importantes s�o: facilidade de desenvolvimento de programas, facilidade na manuten��o e confiabilidade no resultado. Existem muitos outros crit�rios que podem ser levados em considera��o na avalia��o do custo, como a portabilidade, que � a capacidade de uma implementa��o ser movida para outro hardware ou sistema operacional, mas n�o s�o fatores t�o decisivos como os descritos acima. A linguagem Delphi possui uma sintaxe poderosa, com recursos avan�ados, como o uso de estruturas e ponteiros. O IDE foi evoluindo com o passar dos anos e nas �ltimas vers�es passou a possibilitar o que existe de mais promissor no mercado, a possibilidade de desenvolvimento de aplicativos para dispositivos m�veis e com certeza ir� impulsionar a ferramenta e ter maior visibilidade entre os desenvolvedores, aumentando a sua popularidade. Saiu na DevMedia!
Saiba mais sobre Delphi ;)
Plano PRO
Por Filipe Em 2014 Receba nossas novidadesPor que é útil para um programador ter alguma experiência no projeto de linguagens mesmo que ele nunca projete uma linguagem de programação?Melhor entendimento da importância da implementação: os conceitos de linguagens de programação podem levar a uma pessoa a ter um maior domínio de uma determinada linguagem de programação e por sua vez da implementação dela e de como usar seus recursos da melhor maneira possível.
Qual a importância de aprender linguagem de programação?A lógica de programação é importante porque é ela quem nos dá as ferramentas necessárias para executar o processo mais básico no desenvolvimento de alguma aplicação: a criação de seu algoritmo.
Quais são as vantagens de implementar uma linguagem de programação como um interpretador puro?[Sebesta, 2000] Quais são as vantagens de implementar uma linguagem com um interpretador puro? Correções e alterações são mais rápidas de serem realizadas; Código não precisa ser compilado para ser executado; Consomem menos memória.
Como o conhecimento de linguagem de programação pode beneficiar toda a comunidade da computação?R: O conhecimento de linguagens de programação pode beneficiar a comunidade da computação de várias formas, como por exemplo a capacidade de expressar ideias, possuir embasamento para escolher as linguagens adequadas para a resolução do problema descrito, a habilidade aumentada para aprender novas linguagens, pois ...
|