Pergunta

Comecei a programar no básico no ZX81, então BASICA, GW-Basic, e Qbasic. Eu mudei para C (Ah, Turbo C 3.1, eu mal conhecia você ...)

Quando comecei em microcontroladores, regredi com o Carimbo básico de paralaxe. No entanto, o BASIC é/foi incrível, porque era muito fácil de entender e tão difícil cometer um erro. Eu passei para a montagem e C eventualmente porque precisava da energia adicional (velocidade, capacidade, recursos etc.), mas sei que se a barra fosse muito maior, muitas pessoas nunca entrariam em programação de microcontroladores.

Eu continuo tendo uma vontade de fazer meu próprio interpretador básico no chip, mas me pergunto se há necessidade de básico agora que Lua e Python são facilmente incorporados e tão acessíveis quanto básicos.

  • Quais são as vantagens básicas sobre outros idiomas?
  • Por que ainda está por aí?
  • Se eu decidir fazer uma placa de microcontrolador de uso geral com um intérprete, há algum motivo para criar uma versão do BASIC?

Muitos outros idiomas são considerados mortos, mas o básico continua aguentando.

Foi útil?

Solução

Como arquitetura, a principal reivindicação à fama do BASIC é que você pode tornar os intérpretes básicos muito pequenos - apenas alguns KB. Nos dias de um DG Nova, foi uma vitória, pois você poderia usar sistemas como o Business Basic para criar um aplicativo multiusuário em uma máquina com 64k de RAM (ou até menos).

O BASIC (VB em particular) é um sistema herdado e possui uma grande base de código existente. Indiscutivelmente VB é realmente um idioma (alguns diriam um invólucro fino sobre o COM) que tem uma sintaxe básica. Hoje em dia, vejo poucas razões para manter o idioma além da familiaridade das pessoas e manter a base de código existente. Eu certamente não defenderia um novo desenvolvimento nele (observe que o VB.NET não é realmente básico, mas apenas tem uma sintaxe do tipo VB. O sistema de tipos não está quebrado da maneira que o VB era.)

o que é Falta do mundo da computação é um relevante linguagem fácil de aprender e mexer e tem compartilhamento mental no desenvolvimento de aplicativos convencionais. Eu cresci nos dias de máquinas de 8 bits, e a barreira de entrada para a programação nesses sistemas era muito baixa. A arquitetura das máquinas era muito simples e você pode aprender a programar e escrever aplicativos mais ou menos relevantes nessas máquinas com muita facilidade.

As arquiteturas modernas são muito mais complexas e têm uma corcunda maior para aprender. Você pode ver as pessoas pontificando como as crianças não podem aprender a programar o mais fácil possível nos dias de computadores básicos e de 8 bits e acho que esse argumento tem algum mérito. Há algo de um buraco que torna a programação um pouco mais difícil de entrar. As linguagens de brinquedos não são muito usadas aqui - para que a programação seja atraente, é possível aspirar a construir algo relevante com o idioma que você está aprendendo.

Isso leva ao problema de um idioma que é fácil para as crianças aprenderem, mas ainda permite que elas escrevam programas relevantes (ou até jogos) que eles realmente desejam. Também deve ser amplamente percebido como relevante.

A coisa mais próxima que posso pensar com isso é Python. Não é o único exemplo de um idioma desse tipo, mas é o com mais compartilhamento mental - e (IMO) é necessária uma percepção de relevância para jogar neste nicho. É também uma das línguas mais fáceis de aprender que experimentei (dos 30 ou mais que usei ao longo dos anos).

Outras dicas

Isso pode parecer mais negativo do que realmente é. Não estou dizendo básico é a raiz de todo o mal, outros disseram isso. Estou dizendo que é um legado que podemos nos dar ao luxo de deixar para trás.

"Porque era muito fácil de entender e tão difícil cometer um erro" Isso certamente é discutível. Eu tive algumas experiências ruins com o Basic Basic totalmente opaco. Coisas profissionais - produtos comerciais - código perfeitamente horrível. Teve que desistir e recusar o trabalho.

"O que, se houver, as vantagens básicas têm sobre outros idiomas?" Nenhum, realmente.

"Por que ainda está por aí?" Dois motivos: (1) Microsoft, (2) todos os departamentos de TI que começaram a fazer VB e agora têm milhões de linhas de código legado do VB.

"Muitos outros idiomas são considerados mortos ..." Sim. O básico está lá ao lado de COBOL, PL/I e RPG como legados que às vezes têm mais custo do que valor. Mas, por causa da política "se não estiver quebrado, não conserte" de Big It, lá eles se sentam, sugando recursos que poderiam substituí -lo facilmente por algo menor, mais simples e mais barato de manter. Exceto que não "falhou" - é apenas desproporcionalmente caro.

Cobol, de 30 anos, é uma situação horrível para retrabalhar. A partir de 2016, examinaremos o MS BASIC de 30 anos que simplesmente não conseguimos descobrir, não queremos viver sem e não podemos decidir como substituir.

"Mas o básico continua se saindo" Parece que algumas pessoas adoram básicas. Outros veem isso como mais uma linguagem mal projetada; Suas vantagens estão chegando cedo ao mercado e sendo apoiadas por enormes fornecedores (IBM, inicialmente). Sobre o design, o início do mercado apenas nos deixa com um legado com o qual sofreremos por décadas.

Eu ainda tenho meu Manual Básico de Dartmouth de 1965-edição. Não anseio pelos bons velhos tempos.

Por que não experimentar Jumentum e ver como funciona para você?

http://jumentum.sourceforge.net/

É um código aberto básico para microcontroladores

O projeto Elua também é Lua para microcontroladores

http://elua.berlios.de/

O básico persiste, principalmente na implementação do carimbo, porque é de nível mais baixo do que a maioria das outras linguagens de programação muito fácil de aprender. Para a maioria das implementações básicas incorporadas, as instruções básicas são mapeadas diretamente para grupos únicos ou de instruções da máquina, com muito pouca sobrecarga. Os mesmos programas escritos em idiomas de "nível superior", como Lua ou Python, funcionariam muito mais devagar nesses mesmos microcontroladores.

PS: Variantes básicas como o PBASIC têm muito pouco em comum com, digamos, o Visual Basic, apesar da similaridade de nomeação. Eles divergiram de maneiras muito diferentes.

Boa pergunta...

Basicamente (sic!), Não tenho resposta. Eu diria que Lua é muito fácil de aprender, provavelmente tão fácil quanto básico (que também foi um dos meus primeiros idiomas, usei dialetos em muitos computadores de 8 bits ...), mas é mais poderoso (permitindo que OO ou estilos funcionais e até misturando -os) e de alguma forma mais rigorosos (sem goto ...).

Não conheço bem o Python, mas pelo que li, é tão fácil, poderoso e rigoroso que Lua.

Além disso, ambos são "padronizados" de fato, ou seja. Não há dialetos (além das várias versões), ao contrário do BASIC, que possui muitas variantes.

Ambos também criaram VM cuidadosamente criados, eficientes, (principalmente) sem erros. Se você fazer seu próprio interpretador, deve pegar uma VM existente e gerar bytecode para ele a partir da fonte básica ou fazer a sua. Certamente coisas divertidas, mas demoradas e propensas a bugs ...

Então, eu deixaria o BASIC ter uma boa aposentadoria ...:-p

PS.: Por que está esperando? Talvez a Microsoft não seja estranha para isso ... (VB, VBA, VBScript ...)
Também existem muitos dialetos (Realbasic, Darkbasic, etc.), com algum público.

Correndo o risco de parecer dois veteranos em cadeiras de balanço, deixe-me dizer rabugento que "as crianças hoje não apreciam básicas" e depois paradoxalmente dizem "elas não sabem o quão boas o conseguiram".

O básico da maior força foi sempre sua compreensibilidade. Era algo que as pessoas poderiam pegue. Isso foi ignorado há muito tempo pelos acadêmicos e desenvolvedores de idiomas.

Quando você fala sobre querer implementar o BASIC, presumo que você não esteja falando sobre básico com número de linha, mas uma forma estruturada. O problema disso é que, assim que você começa a se mudar para a programação estruturada - funções, 'por que não pode Acabei de ter esse lugar?

Além disso, uma das razões pelas quais o Basic era "tão fácil de acertar" era que naqueles dias as bibliotecas não eram tão importantes quanto são hoje. As bibliotecas implicam programação estruturada, se não orientada a objetos, então, novamente, você está em uma situação em que uma linguagem de script dinâmica mais moderna "se encaixa" na realidade do que as pessoas fazem hoje melhor.

Se a verdadeira pergunta é "bem, quero implementar um intérprete e, portanto, se resume ao retorno do investimento", então se torna um problema de uma gramática que é realmente fácil de implementar. Eu sugiro que o básico também não tenha tantas vantagens nesse sentido (a menos que você realmente Faz retornar aos números de linha e uma gramática muito limitada).

Em suma, eu não Acho que você deve investir seu esforço em um intérprete básico.

Bem, essas pessoas parecem pensar que não apenas básico ainda tem um lugar no espaço móvel, mas também que podem ganhar dinheiro com isso:

http://www.nsbasic.com/symbian/

Comecei também em um ZX81. Mas como Tony Hoare Disse, a programação no BASIC é como tentar fazer uma divisão longa usando algarismos romanos.

Muitos outros idiomas são considerados mortos, mas o básico continua aguentando.

Infelizmente sim. Eu culpo Bill Gates por isso ... o Basic estava em uma maca com um padre dizendo os últimos ritos, e então a MS o trouxe de volta como a varíola.

Eu costumava programar no Basic nos dias Qbasic. Qbasic tinha sub -rotinas, funções, estruturas (elas costumavam ser chamadas de tipos), e acho que é isso. Agora, isso parece limitado em comparação com todos os recursos que o Python possui - OO, Lambdas, Metaclasses, Geradores, Listar compreensões, só para citar alguns no topo da minha cabeça. Mas essa simplicidade, eu acho, é uma força básica. Se você está olhando para uma linguagem incorporável simples, aposto que o Qbasic será mais rápido e mais fácil de entender. E um langauge processual é provavelmente mais do que suficiente para a maioria dos tipos de aplicações de incorporação/script.

Eu diria que o motivo mais importante básico ainda está por aí é o Visual Basic. Por um longo tempo nos anos 90, o VB foi a única maneira de escrever o código GUIs, COM e DB para Windows sem cair em uma das lonas C ++ Turing. [Talvez Delphi também tenha sido uma boa opção, mas infelizmente nunca se tornou tão popular quanto o VB]. Eu acho que é por causa de todo esse código VB e VBA que ainda está sendo usado e mantido que o BASIC ainda não está morto.

Dito isto, eu diria que há uma boa justificativa para escrever intérprete básico (talvez até compilador usando LLVM ou algo semelhante) para o BASIC hoje. Você receberá uma linguagem limpa e simples de usar e rápida se você implementar algo que se assemelha ao Qbasic. Você não precisará resolver nenhum problema de design de idiomas e a melhor parte é que as pessoas já conhecerão seu idioma.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top