1

Тема: Транслятор BaCon

Обнаружил для себя интересную штуку - транслятор исходных текстов на Basic в исходники на С.
Шустро работает, обладает богатыми возможностями, имеет свою IDE для разработки и компилирования текстов...
Побаловался, получилось примерно так:

http://f5.s.qip.ru/~12aR7iGPF.jpg

Автор пишет, что создавал сабж под впечатлением от ScriptBasic.
Искал на русском описания, но увы...
Googl бессилен... Может кто видел русскоязычные ресурсы по субъекту?
Весьма буду благодарен...

Домашняя страница: http://www.basic-converter.org/

2

Re: Транслятор BaCon

Есть такая штука, как конвертер исходных текстов на языке Бэйсик, в компилируемые исходники на С.
С последующими последствиями...
И неплохо мелкие утилиты получаются...
Ну, если кто то задумал написать новый Linux, тогда только С, и ни как иначе!!!
А для удовольствия и разгрузки мозгов от мании величия - BaCon!!!
Не такой уж простой Бэйсик!
Советую посмотреть, может понравится...
SlackBuild прилагаю, как всегда скачает, скомпилирует, только останется желание или нет, установить...

3

Re: Транслятор BaCon

Лучше уж интерпретатор C.
Бэйсик уродует программиста своими убогими возможностями.

4

Re: Транслятор BaCon

drBatty, не вижу большой разницы с точки зрения программиста-пользователя ab В случае интерпретатора не будет готовых бинарников+нужен интерпретатор для программы, если ее нужно запускать еще где-то, кроме как у себя...
И я бы не сказал, что бэйсик настолько плох, что категорически непригоден. А ведь когда-то многие с него начинали. Что до возможностей - это язык для обучения, а не для промышленного применения, и для этого его возможностей вполне достаточно.

5

Re: Транслятор BaCon

yars, бейсик учит уродским и не нужным идиомам, и потом понять уродсово достаточно тяжело из-за синдрома утенка. Каноничный пример это goto, номера строк, и стиль без отступов.

Ну и непонятно, зачем учить язык для обучения, а потом переучиваться в продакшене? Почему сразу не осилить скажем сишку?

6 (05.01.2015 11:44:26 отредактировано bormant)

Re: Транслятор BaCon

drBatty,
то про старые Бейсики, нынешние подобным не грешат :-) , начиная с qbasic, поставлявшегося начиная с MS-DOS 5.0 (август 1981) все перечисленное имеется не больше, чем для поддержки совместимости.

7

Re: Транслятор BaCon

drBatty пишет

Почему сразу не осилить скажем сишку?

Ну я же не спрашиваю, почему сначала изучают букварь, а потом уже берутся за учебник русского языка. Так и с программированием.

8

Re: Транслятор BaCon

bormant,  сами бейсики конечно умеют, но преподаватели об этом вряд-ли знают. Это судя по результатам.

yars, у вас букварь был с китайскими иероглифами, или с русскими буквами и словами? В моём букваре вполне русские слова были. А в вашем эсперанто, ибо проще, да?

9

Re: Транслятор BaCon

drBatty, самый обычный русский букварь. Так чем же бейсик плох в качестве букваря?

10

Re: Транслятор BaCon

yars пишет

Ну я же не спрашиваю, почему сначала изучают букварь, а потом уже берутся за учебник русского языка.

Плохая аналогия, в случае с бейсиком вам предлагают учиться писать стихи по букварю.

11

Re: Транслятор BaCon

yars, то, что вполне допустимо в бэйсике, в других яп является ненормативной лексикой. GOTO к примеру. Если ты думаешь на таком недоязыке, то тебе будет сложно в жизни.

12

Re: Транслятор BaCon

drBatty,
"писать на ФОРТРАНе" можно на любом языке, и Бейсик тут не при чем.

goto есть много где, в том числе и в Си/Паскале/... Так что теперь все дружно будем писать на языке dBASE/FoxPro, там goto нет, правильно мысль понял?

13

Re: Транслятор BaCon

bormant пишет

drBatty,
"писать на ФОРТРАНе" можно на любом языке, и Бейсик тут не при чем.

goto есть много где, в том числе и в Си/Паскале/... Так что теперь все дружно будем писать на языке dBASE/FoxPro, там goto нет, правильно мысль понял?

в сишке goto есть, но на правах ненормативной лексики. Это-то и плохо.

14

Re: Транслятор BaCon

drBatty,
наличие goto само по себе не плохо и не хорошо. Плохо отсутствие языковых средств прерывания более чем одного вложенного цикла (если не считать того самого goto).
Вон, в ассемблерах сплошные goto по любому поводу (j*), и никто пока не умер.

Как говорили древние, лекарство от яда отличается только дозой. Так что, если соблюдать меру, всё на пользу.

15

Re: Транслятор BaCon

bormant, дело не в наличие goto, дело в привычке его пихать где надо, и где не надо. Это касается не только goto, но и всего остального. Бейсик был разработан очень давно, и его сознательно упростили. Уже давно очевидно, что упрощали его не в ту сторону. Но историю уже не повернуть вспять. Сейчас остаётся лишь признать, что бэйсик интересен только с исторической т.з., а для обучения никак не пригоден.

В ассемблера иначе увы, не сделать, да и на ассемблере пишет только Дональд Кнут. Т.ч. это тоже не аргумент.

16

Re: Транслятор BaCon

Согласен полностью с доктором...
Если говорить о букварях и языках: basic как-то явно букварем для сишки не получится...
Букварь для Си скорее будет начинаться как-то так:

#include <stdio.h>
 
int main (void)
{
    puts ("Hello, World!");
    return 0;
}

Но при чем тут бейсик то???
Ну и действительно, вам же в школе уроки русского не после изучения катаканы преподавали   bw

17

Re: Транслятор BaCon

Как "букварь" я бы предложил например Lisp, можно перечислить еще варианты, но Бейсика среди них не будет.

18

Re: Транслятор BaCon

drBatty пишет

бэйсик интересен только с исторической т.з., а для обучения никак не пригоден

Эк вы хватили, непригоден...
Для обучения по теме "алгоритмы и структуры данных" вполне пригоден. Если не считать структур на указателях в динамической памяти. Пожалуй, менее пригоден, чем Паскаль, но уж точно более, чем Си. :-)


diablopc пишет

Но при чем тут бейсик то?

Все началось с этих фраз:

drBatty пишет

Бэйсик уродует программиста своими убогими возможностями.
бейсик учит уродским и не нужным идиомам

Которые по состоянию по крайней мере на 1981 год уже успели устареть.

Первые Бейсики действительно были страшны с точки зрения нынешних представлений о структурном программировании. По крайней мере можно говорить о basica и gwbasic как о неподходящих для обучения программированию.
С тех пор довольно многое поменялось...

19

Re: Транслятор BaCon

bormant пишет

Эк вы хватили, непригоден...
Для обучения по теме "алгоритмы и структуры данных" вполне пригоден. Если не считать структур на указателях в динамической памяти. Пожалуй, менее пригоден, чем Паскаль, но уж точно более, чем Си. :-)

дык никаких структур в бэйсике и нет, кроме простых статических массивов. Всё остальное(списки, стеки, очереди, деревья, хеши) реализуются на указателях и с динамической памятью.

А простому массиву учить не нужно, это и кю поймёт.

Даже простейший стек не сделать, всегда нужно помнить о переполнении этой костыльной ерунды.

Алгоритмы тоже реализуются не сложнее пузырька.

bormant пишет

Бэйсик уродует программиста своими убогими возможностями.
    бейсик учит уродским и не нужным идиомам

Которые по состоянию по крайней мере на 1981 год уже успели устареть.

всё "структурное" в бэйсике реализовано через кривые костыли. Обучающимся будет сложно понять, зачем ТАК всё криво. Это и для сишки верно, но сишка она всё-же близка к ассемблеру, а не к сферическому коню в вакууме из 70х годов.

Т.е. сущность "указатель" из сишки, это вовсе не костыль, а вполне конкретное понятие из машинного кода. В новых бейсиках именно костыли, причём везде разные. Более-менее стандартен лишь тот самый бейсик из 1981го.

bormant пишет

По крайней мере можно говорить о basica и gwbasic как о неподходящих для обучения программированию.

нельзя, ибо они безнадёжно устарели и умерли от старости.

Ещё раз: вектор упрощения бейсика был выбран неверно by design. Потому язык и умер. Вполне естественной смертью.

Если так уж хочется упрощения, то ВНЕЗАПНО

Консоль
$ clisp
  i i i i i i i       ooooo    o        ooooooo   ooooo   ooooo
  I I I I I I I      8     8   8           8     8     o  8    8
  I  \ `+' /  I      8         8           8     8        8    8
   \  `-+-'  /       8         8           8      ooooo   8oooo
    `-__|__-'        8         8           8           8  8
        |            8     o   8           8     o     8  8
  ------+------       ooooo    8oooooo  ooo8ooo   ooooo   8

Добро пожаловать GNU CLISP 2.49 (2010-07-07) <http://clisp.cons.org/>

Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
Copyright (c) Bruno Haible, Sam Steingold 1999-2000
Copyright (c) Sam Steingold, Bruno Haible 2001-2010

Напечатайте :h и нажмите Ввод для получения справки.