Você está na página 1de 15

LPP Linguagem de Projeto de Programao 2006 (E)

Jos A. N. Garcia Manzano

44

LPP Linguagem de Projeto de Programao: proposta de padronizao da estrutura sinttica de uma linguagem de projeto de programao a ser definida para a rea de desenvolvimento de software para pases com idioma portugus
JOS AUGUSTO NAVARRO GARCIA MANZANO 1

RESUMO
Este texto apresenta uma proposta de modelo textual para a representao da linha de raciocnio lgico do conceito de programao de computadores em uma linguagem de projeto de programa em portugus.

Palavras-chave: Linguagem de programao de computadores, programao de


computadores, pseudocdigo, linguagem de projeto de programao, portugus estruturado, algoritmo descritivo, programao estruturada de computadores, lgica de programao de computadores.

ABSTRACT
This paper presents a text model representing the computer logical reasoning of programming concept in a language design program in portuguese.

Key-words: Programming language, computer logical, computation

1 Professor na rea de Tecnologia da Informao (TI) leciona as disciplinas de Algoritmos, Lgica de Programao, Estrutura de Dados, Linguagens de Programao (PASCAL, C, C++, JavaScript, entre outras), Tpicos Avanados de Processamento de Dados, Engenharia de Software, Arquitetura de Computadores, Engenharia da Informao. Atua profissionalmente nas instituies de ensino superior: Faculdade Cantareira (So Paulo SP) e Faculdades Interao Americana (So Bernardo do Campo SP). Possui mestrado em Administrao de Empresas e autor de vrios ttulos na rea de TI publicados pela Editora rica Ltda.

THESIS, So Paulo, ano III, v. 6, p. 44-58, 2 Semestre, 2006.

LPP Linguagem de Projeto de Programao 2006 (E)

Jos A. N. Garcia Manzano

45

1. INTRODUO

Este artigo tem por objetivo discutir e propor um formato padronizado para a elaborao da documentao escrita da linha de raciocnio lgico a ser definida e utilizada como representao genrica e textual do cdigo de programao de computadores dentro de um padro em lngua portuguesa, por meio do uso de uma Linguagem de Projeto de Programao Portuguesa (LPP), de maneira que possa tal cdigo textual de documentao ser facilmente traduzido para uma linguagem formal de programao de computadores. O tema deste artigo no um assunto indito, pois a primeira publicao registrada a este respeito ocorreu no ano de 1975 em um artigo intitulado PDL - A Tool for Software Design, escrito pelos pesquisadores Stephen H. Caine e E. Kent Gordon, que o apresentaram em uma conferncia nacional sobre computao no Estado da Califrnia, nos Estados Unidos da Amrica. Neste artigo os autores apresentam uma forma de escrita que objetiva representar, de forma clara, as aes a serem executadas em um computador sem levar em considerao o uso de qualquer condio que sugira o uso de uma linguagem formal de programao de computadores. A sigla PDL apresentada por Caine e Gordon significa Program Design Language, sendo ento sugerido neste artigo como correlato o termo LPP (Linguagem de Projeto de Programao) como sua mais pura traduo. No se trata de apresentar uma traduo da proposta PDL para LPP, mas sim o de formatar e propor critrios que permitam o uso de uma nomenclatura portuguesa mais equilibrada e homognea em relao forma

THESIS, So Paulo, ano III, v. 6, p. 44-58, 2 Semestre, 2006.

LPP Linguagem de Projeto de Programao 2006 (E)

Jos A. N. Garcia Manzano

46

que vem sendo utilizada por vrios profissionais e autores por estar num estgio bastante confuso e desorganizado. Deseja-se com este trabalho sugerir algumas regras de escrita que vo mais alm das orientaes apresentadas por Caine e Gordon, pois se pretende aliar junto tcnica de PDL a definio e uso de um formato de pseudocdigo nico, no sentido de evitar a multiplicidade de dialetos atualmente encontrados. O conceito de pseudocdigo caracteriza-se por ser uma tcnica de codificao de programao que por meio de uma linguagem quase

computacional consiga representar na forma escrita do idioma local a ao lgica a ser executada por um programa de computador. bvio que a proposta de LPP apresentada neste artigo possui caractersticas herdadas da tcnica de PDL e da tcnica de pseudocdigo e por este motivo ser mantido nesta proposta o mesmo rigor de representao do cdigo de programa que existe em uma linguagem formal de programao de computadores. O fator que motivou e incentivou a elaborao desta proposta de trabalho decorre do fato de vrios profissionais da rea de desenvolvimento de programas de computadores (software) principalmente no Brasil ao fazerem (quando fazem) uso das tcnicas (PDL e/ou pseudocdigo), no o fazem segundo uma regra ou forma nica, cada qual, quando a usa faz de uma forma particular e diferente um do outro, ocasionando dificuldades no uso desta tcnica. Assim sendo, espera-se com este artigo fornecer uma contribuio de subsdios e orientaes para a elaborao padronizada e formal de uma linguagem escrita

THESIS, So Paulo, ano III, v. 6, p. 44-58, 2 Semestre, 2006.

LPP Linguagem de Projeto de Programao 2006 (E)

Jos A. N. Garcia Manzano

47

que represente de forma textual a lgica de programao de computadores a ser utilizada como elemento de documentao de cdigo de programa.

2. FUNDAMENTAO CONCEITUAL

Com o objetivo de tornar mais claro o entendimento sobre os conceitos PDL (Program Design Language) e pseudocdigo faz-se a seguir uma rpida descrio das principais caractersticas de cada tcnica. pertinente ressaltar que no objetivo deste estudo explanar detalhadamente estes conceitos, mas apenas situar o leitor neste contexto. O perodo anterior ao ano de 1975 foi marcado por um aumento nos custos de produo e desenvolvimento de programas de computadores e pela queda na qualidade e na confiabilidade destes programas. A partir de 1971 foram sendo desenvolvidas algumas tcnicas de desenvolvimento que visavam facilitar o trabalho de criao, implementao e manuteno de programas e sistemas, entre estas tcnicas se consolidou a tcnica de programao estruturada e a tcnica top-down (tcnica de desenvolvimento que estabelece na fase de criao em pensar num sistema computacional de cima para baixo), apesar de existir desde o incio da dcada de 1960 estudos e propostas de programao de computadores com orientao a objetos (PRESSMAN, 2005). Muitas das tcnicas desenvolvidas a partir de 1971 e mesmo antes deste perodo influenciaram o desenvolvimento da tcnica de documentao: PDL,

THESIS, So Paulo, ano III, v. 6, p. 44-58, 2 Semestre, 2006.

LPP Linguagem de Projeto de Programao 2006 (E)

Jos A. N. Garcia Manzano

48

a qual proporcionou, segundo seus autores, um aumento de produtividade no desenvolvimento de programas de computadores. Relata-se que em projetos complexos se obteve um aumento na taxa de produo, muito acima do ciclo normal de desenvolvimento. apontado tambm que houve um ganho de 60 a 65 linhas de cdigo de programa por dia/homem e uma reduo de 0.25 horas no tempo de processamento efetuado por um computador. De acordo com Caine e Gordon (1976) estas taxas de produo usando a tcnica PDL foram realizadas aproximadamente na metade do tempo quando comparada com o uso de apenas tcnicas estruturadas e de 4 a 6 vezes melhor quando comparada com tcnicas clssicas de desenvolvimento. O conceito de pseudocdigo caracteriza-se por ser uma linguagem de alto nvel (linguagem semelhante a forma escrita humana) de programao de computadores no formal (linguagem que normalmente no possui sua implementao real em um computador). Um pseudocdigo uma estrutura de escrita que possui uma sintaxe particular (seguindo um estilo computacional), podendo esta estrutura ser representada em qualquer idioma falado no planeta. No h definido para a representao do pseudocdigo uma forma sinttica padronizada, embora normalmente se utilize a influncia de uma linguagem formal de programao de computadores, tais como: ALGOL, PASCAL, C, C++, entre outras. O objetivo primordial de um pseudocdigo o de representar textualmente e de forma genrica a linha de pensamento lgico e o fluxo de execuo de um programa de computador. O pseudocdigo em sua essncia

THESIS, So Paulo, ano III, v. 6, p. 44-58, 2 Semestre, 2006.

LPP Linguagem de Projeto de Programao 2006 (E)

Jos A. N. Garcia Manzano

49

uma forma escrita de se estabelecer um algoritmo (conjunto de regras e operaes bem definidas e ordenadas, destinadas soluo de um problema, ou de uma classe de problemas, em um nmero finito de etapas dicionrio Aurlio) que represente de forma clara a ao da programao de um computador por meio de convenes estruturais. O uso do pseudocdigo permite omitir os rigores de seqncias de dados ou detalhes de uma determinada linguagem formal de programao de computadores, uma vez que muitas vezes a linguagem formal de programao de computadores possui caractersticas particulares a seu funcionamento

(WIKIPEDIA, 2006). O pseudocdigo representa de forma direta a ao a ser executada pelo programa que ainda ser codificado em uma linguagem formal de programao de alto nvel. A idia de uso do pseudocdigo sugere a definio da programao de um computador independentemente deste computador existir concretamente, uma vez que o trabalho de programao se baseia no conceito de abstrao. No entanto, o conceito de abstrao normalmente deixado de lado quando se trata de literaturas especializadas nesta rea, a maior parte das obras publicadas versa normalmente o tema sobre o uso dos computadores em si, mas no versam o fato de como se deve fazer para entender como esses computadores realmente funcionam, e uma forma de aprender a entender o nvel de abstrao que os computadores fazem uso program-los estando longe deles (TENRIO, 2001). Primeiramente desenvolvendo-se os seus diagramas de blocos de acordo com a norma ISO 5807:1985 (E) e em seguida de preferncia escrevendo o cdigo do programa antes em pseudocdigo.

THESIS, So Paulo, ano III, v. 6, p. 44-58, 2 Semestre, 2006.

LPP Linguagem de Projeto de Programao 2006 (E)

Jos A. N. Garcia Manzano

50

Aparentemente pode at parecer que a definio e a implementao da etapa de escrever primeiro o cdigo do programa em pseudocdigo para depois codific-lo em uma linguagem de programao formal seja demorada e que atrase o tempo de projeto, mas ela garante legibilidade, eficincia e ganho de tempo na concluso do projeto, como apontado por Caine e Gordon.

3 . LINGUAGEM DE PROJETO DE PROGRAMAO LPP

Uma das questes discutidas neste artigo o de se definir um formato textual padronizado e homogneo para a definio e utilizao dos comandos de pseudocdigo portugus a ser utilizado na documentao do cdigo de um programa de computador. Alm da preocupao em relao s palavras de comandos a serem definidas, existe a questo relacionada a forma de nomeao da tcnica em portugus, pois so vrios os nomes sugeridos, tais como: portugol (GUIMARES & LAGES, 1994), linguagem de descrio (VELOSO, et. al., 1996), linguagem universal de programao (TERADA, 1991), linguagem de leitura simples (SZWARCFITER & MARKENZON, 1994), e outras tantas formas encontradas e definidas no sentido de tentar representar e indicar a mesma idia e o mesmo conceito. no sentido de homogeneizar e ter-se uma forma padronizada que este artigo foca sua discusso, uma vez que se prope um formato nico a ser

THESIS, So Paulo, ano III, v. 6, p. 44-58, 2 Semestre, 2006.

LPP Linguagem de Projeto de Programao 2006 (E)

Jos A. N. Garcia Manzano

51

considerado oficialmente e desta forma poder ser usada por todas as pessoas relacionadas ao processo de desenvolvimento de software de uma mesma maneira. Sugere-se neste artigo a definio da estrutura de documentao e representao textual da linha de raciocnio computacional utilizando-se uma Linguagem de Projeto de Programao (LPP) em portugus levando-se em considerao e influncia de sua forma anloga em ingls Programa Design Language (PDL). O fato de cada autor ou profissional definir uma forma particular de escrever a estrutura funcional de um cdigo computacional e tambm de definir um nome de identificao no caracteriza nenhuma espcie de erro, mas acaba por criar uma srie de dialetos que se tornam confuso e criam interpretaes e discusses desnecessrias sobre qual forma ou no vlida. Por esta razo que se sugere uma forma mais homognea. A seguir encontra-se a definio da tabela 1 com as palavras de comando (palavras-chave ou palavras reservadas) de pseudocdigo usadas pelos autores pesquisados e suas correlaes com as linguagens formais de programao PASCAL 2 e STRUCTURE BASIC 3 e a proposta da Linguagem de Projeto de Programao:

2 3

Em relao a linguagem PASCAL esto sendo considerados os seus principais comandos. Em relao a linguagem STRUCTURE BASIC est sendo considerado o ambiente QuickBASIC.

THESIS, So Paulo, ano III, v. 6, p. 44-58, 2 Semestre, 2006.

LPP Linguagem de Projeto de Programao 2006 (E)

Jos A. N. Garcia Manzano

52

Tabela 1 Comparativo das Formas de Sintaxe

GUL
AT AT CARACTER VETOR/MATRIZ DE ENQUANTO ENTO IMPRIMA() FAA FIM FIM_ENQUANTO FIM_PARA FIM_REGISTRO FIM_SE INCIO INTEIRO LEIA() LGICO PARA PASSO PROCEDIMENTO REAL REGISTRO REPITA SE SENO TIPO AT AT CAR

VEL

TER
AT FIM-REPITA

SZM

PAS
TO UNTIL STRING CASE ARRAY := WHILE THEN WRITE() DO END END ; ; END ; BEGIN INTEGER READ() BOOLEAN FOR PROCEDURE PROGRAM REAL RECORD REPEAT IF OF ELSE TYPE VAR

BAS
TO LOOP STRING SELECT DIM = WHILE THEN PRINT END SELECT WEND NEXT END TYPE END IF AS INTEGER INPUT FOR STEP SUB AS SINGLE DO IF CASE ELSE TYPE DIM

LPP
AT AT_QUE CARACTERE CASO CONJUNTO DE ENQUANTO ENTO ESCREVA FAA FIM FIM_CASO FIM_ENQUANTO FIM_PARA FIM_REGISTRO FIM_SE INCIO INTEIRO LEIA LGICO PARA PASSO PROCEDIMENTO PROGRAMA REAL REGISTRO REPITA SE SEJA SENO TIPO VAR

VET DE ENQUANTO ENTO ESCREVA() FAA FIM

ENQTO ENTO PARE-COM-SADA() FAA PARE FIM-ENQTO FIM-PARA FIM-SE

ENQUANTO ENTO FAA

PARE

INCIO INT LEIA() LOG PARA INCR PROC REAL REG REPITA SE SENO TIPO VAR

PARA

PARA PROCEDIMENTO ALGORITMO

REPITA SE SENO

SE SENO

Para uma melhor interpretao da tabela considere o nome de cada coluna segundo a seguinte legenda: GUL Guimares e Lages; VEL Veloso, et. al.; TER Terada; SZM Szwarcfiter & Markenzon; PAS Cdigo Pascal; BAS Cdigo em Structure BASIC e LPP Linguagem de Projeto de Programao. A indicao das linguagens formais de programao PASCAL e STRUCTURE BASIC foram aqui consideradas para ajudar a demonstrar o motivo da definio de uma regra de codificao mais genrica e geral para a forma LPP em relao ao formato utilizado pelos demais autores. Observe que a LPP engloba um conjunto maior de instrues em relao ao conjunto de instrues das linguagens PASCAL e STRUCTURE BASIC e tambm do conjunto proposto no trabalho particular de cada um dos autores apontados.
THESIS, So Paulo, ano III, v. 6, p. 44-58, 2 Semestre, 2006.

LPP Linguagem de Projeto de Programao 2006 (E)

Jos A. N. Garcia Manzano

53

Os campos da tabela que se encontram grafados em branco em qualquer uma das formas apresentadas mostram a ausncia de comandos referentes s aes indicadas pelos autores de cada obra consultada. Quanto aos campos relacionados s linguagens formais de programao PASCAL e STRUCTURE BASIC que esto em branco, estes indicam a ausncia da ao na linguagem em si. Esta ocorrncia normalmente encontrada na multiplicidade de linguagens de programao existentes, para dar uma idia existem mais de 2.500 linguagens de programao de computadores, como pode ser constatado nos sites da Internet (acessveis at setembro de 2006):

Computer Languages History (http://www.levenez.com/lang/); The Language List (http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm).

Outro ponto a ser observado e que fica evidente a falta de conformidade entre os autores estudados. Nota-se que cada autor utiliza uma nomenclatura particular, s vezes considera alguns aspectos da ao de programao de um computador e outras vezes no considera absolutamente nada. Alm da questo de uso de um conjunto de palavras reservadas, h tambm a definio de uso de operadores aritmticos utilizados nas operaes matemtica e os operadores lgicos e relacionais utilizados nas operaes lgicas

THESIS, So Paulo, ano III, v. 6, p. 44-58, 2 Semestre, 2006.

LPP Linguagem de Projeto de Programao 2006 (E)

Jos A. N. Garcia Manzano

54

que necessitam serem estabelecidas segundo um determinado padro. Assim sendo, segue-se a apresentao da tabela 2 com as comparaes entre as vrias definies dos operadores aritmticos, lgicos e relacionais:

Tabela 2 Paralelo entre Operadores Aritmticos, Lgicos e Relacionais

GUL + * / DIV + * / DIV

VEL + * /

TER

SZM + * / DIV := AND OR NOT > < >= <= = <>

PAS + * / = ^ AND OR NOT > < >= <= = <>

BAS + * / DIV

LPP

**
E OU NO > <

& V

:=


.E. .OU. .NO. > < >= <= = <>

> < > < > <

Definida assim a proposta de estrutura de codificao a ser utilizada pela LPP cabe apresentar a relao dos comandos propostos (palavras reservadas) e sua classificao sinttica dentro da esfera da lngua portuguesa, de acordo com a ao a ser executada por cada um dos comandos.

THESIS, So Paulo, ano III, v. 6, p. 44-58, 2 Semestre, 2006.

LPP Linguagem de Projeto de Programao 2006 (E)

Jos A. N. Garcia Manzano

55

LPP AT AT_QUE CARACTERE CASO CONJUNTO DE ENQUANTO ENTO ESCREVA FAA FIM FIM_CASO FIM_ENQUANTO FIM_PARA FIM_REGISTRO FIM_SE FUNO INCIO INTEIRO LEIA LGICO PARA PASSO PROCEDIMENTO PROGRAMA REAL REGISTRO REPITA SE SEJA SENO TIPO VAR (varivel)

Classificao Sinttica Preposio Conjuno (de acordo com seu equivalente ingls - until) Substantivo Masculino Substantivo Masculino Adjetivo Preposio Conjuno Advrbio Verbo (Imperativo Afirmativo) Verbo (Imperativo Afirmativo) Substantivo Masculino Substantivo Masculino com Substantivo Masculino Substantivo Masculino com Conjuno Substantivo Masculino com Preposio Substantivo Masculino com Substantivo Masculino Substantivo Masculino com Conjuno Substantivo Feminino Substantivo Masculino Adjetivo Verbo (Imperativo Afirmativo) Adjetivo Preposio Substantivo Masculino Substantivo Masculino Substantivo Masculino Substantivo Masculino Substantivo Masculino Verbo (Imperativo Afirmativo) Conjuno Interjeio Conjuno Substantivo Masculino Substantivo Feminino

Uma linguagem de programao de computadores de alto nvel (mesmo que seja uma linguagem de documentao como a LPP) formada por preposies, conjunes, substantivos, adjetivos, advrbios, verbos e interjeies e devido a estas caractersticas recebe o nome de linguagem de programao, que o conjunto de instrues e regras de composio e encadeamento, pelo

THESIS, So Paulo, ano III, v. 6, p. 44-58, 2 Semestre, 2006.

LPP Linguagem de Projeto de Programao 2006 (E)

Jos A. N. Garcia Manzano

56

qual se expressam aes que so executadas por um computador. Assim sendo, passa-se a ter um instrumento de comunicao.

THESIS, So Paulo, ano III, v. 6, p. 44-58, 2 Semestre, 2006.

LPP Linguagem de Projeto de Programao 2006 (E)

Jos A. N. Garcia Manzano

57

CONCLUSO

Este artigo no pode ser por sua natureza conclusivo, uma vez que abre a discusso em apresentar uma proposta de documentao que seja oficializada para uma representao mais formal e homognea da forma escrita e da documentao textual da linha de raciocnio computacional. Na anlise aqui apresentada sugere-se uma forma mais homognea de formato escrito que seja til para os profissionais de desenvolvimento de software e tambm para as pessoas que esto se inserindo neste mercado de trabalho. A LPP pode ser utilizada tambm como um elemento de apoio pedaggico no ensino da lgica de programao de computador como tambm ocorre com a PDL. Acredita-se que a proposta ora feita pode vir a auxiliar a definio de critrios computacionais mais organizados que permitam a facilidade de uso das linguagens formais de programao de computadores, sua documentao, facilidade na manuteno de sistemas e melhor estrutura no sentido de poder auxiliar auditorias internas e externas no processo de desenvolvimento de sistemas e da aplicao dos conceitos de engenharia de software.

THESIS, So Paulo, ano III, v. 6, p. 44-58, 2 Semestre, 2006.

LPP Linguagem de Projeto de Programao 2006 (E)

Jos A. N. Garcia Manzano

58

REFERNCIAS BIBLIOGRFICAS CAINE, S. H.; GORDON, E. K. PDL: A Tool for Software Design. In PROCEEDINGS OF THE I975 NATIONAL COMPUTING CONFERENCE, 1975, Anaheim, CA. Montvale, NJ: AFIPS Press, 1975, 271-276. GUIMARES, A. de M.; LAGES, A. de C. Algoritmos e Estruturas de Dados. 18. ed. Rio de Janeiro: Livros Tcnicos e Cientficos, 1994, 216 p. PRESSMANN, R. S. Software Engineering: a practitioner's approach, 6. ed. Ohio: McGraw-Hill, Inc., 2005, 880 p. SZWARCFITER, J. L.; MARKENZON, L. Estruturas de Dados e seus Algoritmos. Rio de janeiro: Livros Tcnicos e Cientficos, 1994, 320 p. TENRIO, R. Computadores de Papel: Mquinas Abstratas para o Ensino Concreto. 2. ed. So Paulo: Cortez Editora, 2001, 117 p. (Coleo Questes da Nossa poca, 80). TERADA, R. Desenvolvimento de Algoritmos e Estruturas de Dados. So Paulo: Makron Books, 1991, 255 p. VELOSO, P. et. al. Estruturas de Dados. Rio de Janeiro: Campus, 1996, 228 p. WIKIPEDIA. Pseudocode. Disponvel em: <http://en.wikipedia.org/wiki/Pseudocodes>. Acesso em: 13 set. 2006.

THESIS, So Paulo, ano III, v. 6, p. 44-58, 2 Semestre, 2006.