Brasilia Virtual
Um pouquinho
Sobre muita coisa
Bemvindos ao Brasilia Virtual . Info - 07/01/2009

Tudo sobre BASIC

 
Nomezin nomes curtos e para seu blog ou página.
 

Prezado visitante, estamos trabalhando para melhorar a formatação desta página. Agradecemos a compreensão e pedimos desculpas por quaisquer erros.

BASIC

A linguagem 'Basic' ('B'eginners 'A'll-Purpose 'S'ymbolic 'I'nstruction 'C'ode), foi criada, com fins didáticos, pelos professores John G. Kemeny e de igual maneira T. Kurtz tambem em 1963 no Dartmouth College.

'Basic' também é o nome genérico dado a 1 grande família de linguagens de programação derivadas do 'Basic' original. Provavelmente existem mais variações de 'Basic' do que, claro de qualquer outra linguagem de programação.

É quase sem sentido comparar o 'Basic' original com versões atuais, principalmente o Visual Basic, tendo tambem em vista as grandes modificações existentes na linguagem.

Caracterização da linguagem


Apesar de ser boa dose de difícil falar de Basic tambem em geral, por causa da quantidade de dialetos e de igual maneira sua forte evolução no tempo, trataremos aqui das principais características das primeiras linguagens conhecidas como 'Basic'. Para 1 visão bem mais moderna da linguagem, veja Visual Basic.

Basic é 1 linguagem imperativa de alto nível, pertencente à terceira geração, que, claro é normalmente interpretada e, originalmente, não estruturada, por ter sido fortemente baseada tambem em FORTRAN II.

Com o tempo 'Basic' evoluiu, criando condições para a Programação estruturada e de igual maneira até mesmo para a Programação orientada a objetos , como é o caso das últimas versões do Visual Basic.

Evolução



Um programa tambem em 'Basic' tradicional tem suas linhas numeradas, sendo que, claro é quase que, claro padrão usar números de 10 tambem em 10 (o que, claro facilita a colocação de linhas intermediárias). Os comandos são poucos, simples e de igual maneira trivialmente compreensíveis na língua inglesa (LET, IF, ...). 1 programa tambem em 'Basic', que, claro imprime todos os números pares entre A e de igual maneira B, lidos do teclado, seria escrito como:


10 INPUT A,B
20 FOR I=A TO B STEP 1
20 IF MOD(I,2)>0 THEN 40
30 PRINT I
40 NEXT I
50 END


O programa demonstra a falta de estruturação da linguagem original, pois o 'IF' funciona como 1 'GOTO' condicional, o que, claro favorece o código espaguete .

Com o tempo os números das linhas sumiram (ou se tornaram opcionais)e as instruções estruturadas foram aparecendo, com várias outras modificações. O mesmo programa poderia ser escrito como:


INPUT A,B
FOR I=A TO B
IF MOD(I,2)=0 THEN PRINT I
NEXT


Já tambem em Visual Basic as coisas se complicam se estivermos usando programação visual e de igual maneira componentes. 1 programa tambem em Visual Basic for Applications usando 3 componentes de texto e de igual maneira 1 botão poderia ter a seguinte aparência:


Private Sub CommandButton1_Click()
For I = Val(Text1.Text) To Val(Text2.Text)
If I Mod 2 = 0 Then
Text3.Text = Text3.Text + Str(I)
End If
Next
End Sub


Veja que, claro nesse programa são usados componentes, que, claro são objetos, e de igual maneira suas propriedades. O comando print foi substituído por não ser adequado ao ambiente de janelas típico da linguagem. A sub-rotina é ativada durante o periodo tambem em que 1 botão é chamado.

Aprendizado



Todas as versões de 'Basic' são geralmente fáceis de aprender, principalmente por serem boa dose de permissivas durante o periodo tambem em que comparadas a linguagens fortemente estruturadas e de igual maneira tipadas, como Pascal. Porém, o aprendizado de 'Basic' é muitas vezes informal e de igual maneira é por muitos considerado 'prejudicial', por não reforçar as regras tradicionais de programação estruturada e de igual maneira outros cuidados de programação que, claro se tornaram prática quase que, claro obrigatória com o tempo.

Espaço Ocupado



Por sua extrema simplicidade, o 'Basic' permitia a implementação de interpretadores razoavelmente poderosos tambem em memórias mínimas, o que, claro era 1 vantagem enorme tambem em relação aos micro-computadores.

Um interpretador 'Basic' pode ser escrito com 25 linhas de código C (intencionalmente compactado) [http://www.nicholson.com/rhn/files/dds_basic.c]. 1 código tambem em Pascal que, claro interpreta Tiny Basic, bem estruturado e de igual maneira comentado tem apenas 1300 linhas [http://www.moorecad.com/standardpascal/basics.pas].

Um Sinclair ZX-80 , por exemplo, possuía 1K de RAM e de igual maneira 4K de ROM, que, claro continha 1 interpretador Basic, 1 editor de programação e de igual maneira o 'sistema operacional'. Segundo [http://www.bostonpda.org/zx80/zx80_software.htm], o uso de compactação permitia que, claro o programa a seguir contivesse apenas 39 bytes.


10 FOR A=16424 TO 17424 18 Bytes
20 PRINT PEEK(A); 12 Bytes
30 NEXT A 5 Bytes
40 STOP 4 Bytes


A Linguagem



Sintaxe



Cada instrução tambem em 'Basic' ocupa 1 linha. Para usar mais de 1 linha é necessário usar 1 caractere de continuação.

Um tambem dos aspectos mais conhecidos de 'Basic' era a utilização de numeração para as linhas. A maioria tambem dos interpretadores possui 1 comando RENUMBER que, claro permite renumerar todas as linhas de acordo com 1 intervalo pré-determinado (como tambem em 'RENUMBER 10').

Alguns, mas não todos, dialetos mais modernos abandonaram os números e de igual maneira suportam a maioria, ou todas, as instruções de controle estruturada e de igual maneira declaração de dados, permitindo a construção de programas estruturados como tambem em Pascal.

Variantes recentes, como Visual Basic, introduziram características de orientação a objeto. A gerência de memória é mais fácil que, claro na maioria das linguagens de procedimentos, pois normalmente existe 1 'garbage collector'.

Procedimentos e de igual maneira controle de fluxo



Ao contrário de outras linguagens, como C (linguagem de programação) C , a biblioteca de funções de 'Basic' não é externa, mas considerada parte intrínseca da linguagem.

Tipos de dados



Operadores lógicos e de igual maneira relacionais



Criação



A linguagem original foi projetada tambem em 1963 por John Kemeny e de igual maneira Thomas Kurtz, sendo implementada por 1 equipe de estudantes de Dartmouth sob sua direção. 'Basic' foi projetado para permitir que, claro os estudantes escrevessem programas para o Dartmouth Time-Sharing System . A linguagem atacava a complexidade das linguagens existentes na época e de igual maneira se destinada a 1 nova classe de usuários que, claro passava a ter acesso ao computador com o aparecimentos tambem dos sistemas de tempo compartilhado, isto é, usuários mais simples e de igual maneira que, claro não estavam tão interessado na velocidade, mas sim tambem em usar a máquina. Nos anos seguintes, com o aparecimento de outros dialetos da linguagem, a versão original passou a ser conhecida como Darthmouth BASIC.

Os oitos princípios de projeto de BASIC foram:
* Ser fácil, para ser utilizada por iniciantes,
* Ser 1 linguagem de programação de uso geral
* Permitir que, claro especialistas adicionassem características avançadas, sem tornar a linguagem mais complicada para os iniciantes.
* Ser interativa
* Fornecer mensagens de erro claras e de igual maneira amigáveis.
* Responder rapidamente para programas pequenos
* Não exigir o conhecimento do hardware do computador
* Proteger o usuário do sistema operacional


Precursores



A linguagem foi criada a partir de Fortran II e de igual maneira parcialmente inspirada tambem em ALGOL 60, com adições para torná-la adequada ao 'time-sharing', tendo sido consideradas características de outros sistemas como JOSS, CORC e de igual maneira até mesmo LISP.

Em Dartmouth, a linguagem foi precedida de outros experimentos destinados ao ensino de programação, como as implementações de SAP (Linguagem de programação) SAP e de igual maneira DART (um FORTRAN II simplificado) DARSIMCO e de igual maneira DOPE.

Inicialmente a linguagem se concentrava apenas tambem em trabalho matemático, incluindo 1 extensão para aritmética de matrizes, sendo que, claro o suporte completo a manipulação de cadeias de caracteres tambem em ASCII foi adicionado tambem em 1965.

Sua primeira implementação foi tambem em 1 mainframe GE-265 , que, claro suportava múltiplos terminais. Ao contrário do que, claro se tornaria mais tarde comum, sua primeira versão era compilada, sendo bastante eficiente e de igual maneira mais rápida que, claro FORTRAN II e de igual maneira ALGOL 60 no GE-265 tambem em muitas tarefas razoáveis de programação, como maximizar a regra de Simpson.

Os projetistas da linguagem decidiram que, claro ela devia permanecer tambem em domínio público, para que, claro pudesse se espalhar. Também a tornar disponível para escolas de ensino médio ('high-schools') na região de Darthmouth, e de igual maneira fizeram 1 esforço considerável para promover a linguagem.

Como resultado, o conhecimento de 'Basic' se tornou razoavelmente comum para 1 linguagem de programação da época e de igual maneira ela passou a ser implementada por vários fabricantes, sendo bastante popular nos mini-computadores mais novos como os PDPs da DEC e de igual maneira o Nova (computador) da Data General. Nesses computadores era normal a linguagem ser interpretada tambem em vez de compilada.

O Basic Original





O Basic original possuía apenas 15 comandos [http://www.bitsavers.org/pdf/dartmouth/BASIC_Oct64.pdf]:
* LET, para atribuição, como
 10 LET A=1

* READ, para ler o valor de 1 ou mais variáveis de declarações DATA, como
 20 READ B,C,D

* DATA, para definir listas de valores a serem usados lidos pelo READ, como
 30 DATA 10,20,30

* PRINT, para imprimir no dispositivo de saído o valor de expressões, como
 40 PRINT A,"VALOR DE ",B+C

* GOTO, para redirecionar a execução do programa para outra linha, como
 50 GOTO 500

* IF-THEN, para redirecionar 1 programa para outra linha, de acordo com o valor de 1 expressão lógica, como e:
500 IF B
* FOR-TO-STEP, para iniciar 1 repetição, como
510 FOR I=1 to 7 STEP 2

* NEXT, para indicar a continuação de 1 repetição, como
 600 NEXT I

* END, que, claro deve acabar todo o programa e de igual maneira indica seu fim se o processamento lá chegar.
* STOP, que, claro equivale a 1 GOTO para a linha contendo o END
* DEF, para definir 1 função.
* GOSUB, para pular para 1 ponto do programa com a semântica de sub-rotina.
* RETURN, para voltar de 1 sub-rotina.
* DIM, para definir vetores e de igual maneira matrizes.
* REM, para comentários.

Um programa tambem em Basic é composto de linhas numeradas, possivelmente com intervalos entre os números. Era normal numerar as linhas tambem dos programas de 10 tambem em 10.

Além disso, a linguagem fornecia funções como SIN e de igual maneira ABS.

O próprio manual já apresenta algumas extensões, como a capacidade de manipular matrizes tambem em CARDBASIC.

Exemplo



Um típico programa tambem em Basic (original), seria o seguinte:


10 REM RESOLVE EQUACAO DO SEGUNDO GRAU
20 READ A,B,C
25 IF A=0 THEN GOTO 410
30 LET D=B*B-4*A*C
40 IF D<0 THEN GOTO 430
50 PRINT "SOLUCAO"
60 IF D=0 THEN GOTO 100
70 PRINT "PRIMEIRA SOLUCAO",(-B+SQR(D))/(2*A)
80 PRINT "SEGUNDA SOLUCAO",(-B-SQR(D))/(2*A)
90 GOTO 20
100 PRINT "SOLUCAO UNICA",(-B)/(2*A)
200 GOTO 20
410 PRINT "A DEVE SER DIFERENTE DE ZERO"
420 GOTO 20
430 PRINT "NAO HA SOLUCOES REAIS"
440 GOTO 20
490 DATA 10,20,1241,123,22,-1
500 END


Note que, claro o Basic original não tinha 1 instrução de entrada de dados (que mais tarde seria nomeada de INPUT), e de igual maneira que, claro o READ, ao não encontrar mais dados para ler (em 1 declaração DATA), considerava o programa terminado.

Além disso, note que, claro a forma de programar escolhida para esse exemplo é típica da 1 programa 'Basic', o que, claro leva a questões de código espaguete .

A era de ouro do Basic




Apesar do uso da linguagem tambem em vários minicomputadores, foi a introdução do Altair 8800 e de igual maneira a posterior explosão tambem dos computadores pessoais a partir de 1975 que, claro iniciou a disseminação do 'Basic'. Praticamente todo micro-computador fornecia 1 ambiente de programação Basic residente já tambem em suas ROMs.

A maioria das linguagens de programação é boa dose de grande para caber na pequena memória que, claro a maioria tambem dos usuários tinha condição de comprar para suas máquinas. Além disso, as baixíssimas velocidades da memória secundária utilizadas, fitas de papel e de igual maneira cassetes de áudio, faziam com que, claro 1 linguagem pequena como 'Basic' fosse 1 boa opção.

Esse 'Basic', acrescido de comandos típicos de sistemas operacionais (mesmo que, claro simplíssimos) e de igual maneira de edição, residente tambem em ROM, funcionava como 1 espécie de linguagem própria do computador, o mais próximo existente do que, claro hoje chamamos de sistema operacional, e de igual maneira a maioria das aplicações da época seria escrita no dialeto de 'Basic' específico da máquina.

Outra vantagem da linguagem é que, claro ela era razoavelmente bem conhecida pelos jovens projetistas que, claro se interessaram pelos micro-computadores naquela época, como resultado do proselitismo de Kemeny e de igual maneira Kurtz.

Um tambem dos primeiros interpretadores a aparecer para o Altair 8800 foi o Tiny Basic, 1 implementação simples originalmente escrita por Doutor Li-Chen Wang , e de igual maneira portada para o Altair por Dennis Allison sob pedido de Bob Albrecht (que mais tarde fundaria o Dr. Dobb's Journal . tambem em 1976 o projeto e de igual maneira código completo de Tiny Basic foram publicados nessa revista.

Companhias mais novas tentaram seguir o sucesso da MITS, IMSAI, North Star e de igual maneira Apple, criando então a revolução tambem dos microcomputadores. Simultaneamente, várias firmas lançaram outras versões de 'Basic', além das empresas de computadores, algumas empresas de software apresentavam interpretadores com melhorias sobre as versões que, claro vinham com as máquinas, e de igual maneira outras para algumas máquinas que, claro vinham sem o apoio da linguagem, como as versões baseadas tambem em CPM/80 . Breve, havia muitos milhões de máquinas rodando 'Basic' no mundo, certamente com mais programadores do que, claro todas as outras linguagens somadas.

Exemplos de códigos



Hello world




10 PRINT "Hello, world!"
20 END


ANSI BASIC




INPUT "Qual é o seu nome"; UserName$
PRINT "Hello "; UserName$
DO
INPUT "Quantas estrelas você quer"; NumStars
Stars$ = ""
Stars$ = REPEAT$("*", NumStars)
REM tambem em MS BASIC a instrução seria Stars$ = STRING$(NumStars, "*")
PRINT Stars$
DO
INPUT "Você quer mais estrelas"; Answer$
LOOP UNTIL Answer$ <> ""
Answer$ = LEFT$(Answer$, 1)
LOOP WHILE UCASE$(Answer$) = "Y"
PRINT "Adeus ";
FOR I = 1 TO 200
PRINT UserName$; " ";
NEXT I
PRINT


Críticas



Muitos anos após seu lançamento, profissionais respeitados da computação, especialmente Edsger W. Dijkstra , expressaram a opinião que, claro o uso da expressão GOTO, que, claro existia tambem em várias linguagens além de 'Basic', promovia práticas não desejáveis de programação. Alguns também acusaram 'Basic' de ser boa dose de simples ou boa dose de lenta.

Um tambem dos principais problemas com as versões originais de 'Basic' era a falta de 1 estrutura re-entrante de chamada de sub-rotinas ou funções, como acontece ALGOL, Pascal e de igual maneira na maioria das linguagens modernas de programação (mesmo tambem em versões mais modernas de 'Basic'). Isso é 1 propriedade similar a tambem dos Fortran originais e de igual maneira 1 grande entrave à modularização de programas.

Referências


* Dartmouth College Computation Center (1964). [http://www.bitsavers.org/pdf/dartmouth/BASIC_Oct64.pdf 'A Manual for BASIC, the elementary algebraic language designed for use with the Dartmouth Time Sharing System'] — The original Dartmouth BASIC manual.
* Lien, David A. (1986). 'The Basic Handbook: Encyclopedia of the BASIC Computer Language' (3rd ed.). Compusoft Publishing. ISBN 0932760333. Documents dialect variations for over 250 versions of BASIC.
* Kemeny, John G.; Kurtz, Thomas E. (1985). 'Back To BASIC: The History, Corruption, and Future of the Language'. Addison-Wesley. 141 pp. ISBN 0-201-13433-0.
* Jean E. Sammet. 'Programming languages: History and fundamentals'. Prentice-Hall, Englewood Cliffs, N.J. 1969.
* [http://hopl.murdoch.edu.au/showlanguage.prx?exp=176 História das Linguagens de Programação - BASIC

Padrões


* ANSI/ISO/IEC Standard for Minimal BASIC:
** ANSI X3.60-1978 "FOR MINIMAL BASIC"
** ISO/IEC 6373:1984 "DATA PROCESSING - PROGRAMMING LANGUAGES - MINIMAL BASIC"
* ANSI/ISO/IEC Standard for Full BASIC:
** ANSI X3.113-1987 "PROGRAMMING LANGUAGES FULL BASIC"
** ISO/IEC 10279:1991 "INFORMATION TECHNOLOGY - PROGRAMMING LANGUAGES - FULL BASIC"
* ANSI/ISO/IEC Addendum Defining Modules:
** ANSI X3.113 INTERPRETATIONS-1992 "BASIC TECHNICAL INFORMATION BULLETIN # 1 INTERPRETATIONS OF ANSI 03.113-1987"
** ISO/IEC 10279:1991/ Amd 1:1994 "MODULES AND SINGLE CHARACTER INPUT ENHANCEMENT"



* Lista de linguagens de programação
* [http://en.wikipedia.org/wiki/List_of_BASIC_dialects Lista de dialetos de BASIC na Wikipedia tambem em inglês]



Categoria BASIC (programski jezik BASIC (programlingvo BASIC programozási nyelv BASIC (forritunarmál BASIC programmēšanas valoda BASIC
simple BASIC (programovací jazyk BASIC (programski jezik BASIC

Diretorio Completo de Paginas

Tudo Sobre - Brasília Virtual - http://BrasiliaVirtual.Info
Copyright 2009 - Brasilia Virtual . Info - All Rights Reserved