LINUX.ORG.RU
ФорумTalks

Вышел yabasic 2.87.1

 , yabasic


0

1

Собственно, сабж.

Из изменений:

  • Fixed for libffi on 32 bit systems
  • Updated included header files (windows) of ffi from libffi 3.3

Скачать: http://2484.de/yabasic/download/yabasic-2.87.1.tar.gz

Напоминаю, что

Yabasic - это бесплатный интерпретатор языка программирования BASIC с открытым исходным кодом для платформ Windows и Unix.

★★★★★

Ответ на: комментарий от gremlin_the_red

А они на 90% одинаковые: LET, PRINT, INPUT, GOTO, GOSUB, RETURN, IF ... THEN,...

Yabasic is a traditional basic-interpreter. It comes with goto and various loops and allows to define subroutines and libraries. It does simple graphics and printing. Yabasic can call out to libraries written in C and allows to create standalone programs.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от gremlin_the_red

По ходу, да, его можно рассматривать как ещё один диалект. Однако, если код на Basic'е не использует никаких специфических вещей, то, по ходу, он должен заработать в этом интерпретаторе без изменений.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от gremlin_the_red

Разница между диалектами. В неё входят, например, команды для вывода графики.

Стандарту INCITS/ISO/IEC 10279:1991[S2020] соответствует?

Это надо у авторов спрашивать.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от gremlin_the_red

Стандарту INCITS/ISO/IEC 10279:1991[S2020] соответствует?

Насколько соответствуют ли этому стандарту MS Visual Basic и BASICA?

Если не соответствуют, вопрос к ТС: насколько yabasic совместим с MS Visual Basic и BASICA?

question4 ★★★★★
()
Ответ на: комментарий от saahriktu

А они на 90% одинаковые: LET, PRINT, INPUT, GOTO, GOSUB, RETURN, IF … THEN,…

И перечислил какую-то экзотическую, неиспользуемую в бейсике хрень, кроме goto и if ))

rechnick ★★★
()
Ответ на: комментарий от question4

А при чём тут Visual Basic?

yabasic - это интерпретатор классического олдскульного Basic'а наподобие того, что был в ZX Spectrum'ах.

Вот BASICA уже ближе. Однако, про совместимость надо спрашивать авторов.

На github'е проект тут: https://github.com/marcIhm/yabasic

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от question4

Насколько соответствуют ли этому стандарту MS Visual Basic и BASICA?

С VB всё сложно. Стандарт определяет только синтаксические конструкции, но не рантайм. При этом многие вещи являются необязательными для реализации (например, номера строк). Поэтому и

10 PRINT "HELLO"
и
Module Module1
    Sub Main()
        Console.WriteLine("Hello, World!")
    End Sub
End Module
стандарту формально соответствуют, но, очевидно, несовместимы.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от rechnick

У Вас странные представление о Basic'е. LET, PRINT, INPUT, GOSUB и RETURN использовались в большинстве программ на Basic'е.

LET - оператор присваивания. INPUT/PRINT - ввод/вывод. GOSUB и RETURN особенно актуальны были в тех диалектах, где не было создания функций. GOSUB - переход на подпрограмму, RETURN - возвращение из подпрограммы в ту точку из которой был совершён вход в подпрограмму.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

Да, я понял свою ошибку. Никогда не сталкивался с древними бейсиками. Довольно плотно сижу на vba, vb.net, vbs, oo/lo basic, autoit. Последний – самый непохожий на другие, но даже в нём нафиг не нужны let, print, input. А может быть их вообще там нет. Лень смотреть.

rechnick ★★★
()
Ответ на: комментарий от saahriktu

GOSUB - переход на подпрограмму, RETURN - возвращение из подпрограммы в ту точку из которой был совершён вход в подпрограмму

В аниме Lost Universe на экране пару секунд демонстрируется кусок якобы бейсик кода, где в начале можно увидеть

#define GOSUB(x) setjmp(jmp); goto x;
#define RETURN if (jmp) longjmp(jmp);

gremlin_the_red ★★★★★
()

На сайте автора ещё не опубликовали, но тут уже впереди паровоза.

bbk123 ★★★★★
()
Ответ на: комментарий от saahriktu

А при чём тут Visual Basic?

При том, что мне неоднократно бывало нужно выполнить какой-нибудь скрипт *.vbs. Например, вывести матрицу по заданному символу пространственной группы. Приходилось либо запускать ВМ, либо искать другую программу.

question4 ★★★★★
()
Последнее исправление: question4 (всего исправлений: 1)
Ответ на: комментарий от Shulman

Но не свободный?

с открытым исходным кодом

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)

а оно точно нужно сейчас?

XoFfiCEr ★★☆☆
()
Ответ на: комментарий от rechnick

vba, vb.net

я тоже сидел на этом..

Но потом выбрал python ну или он выбрал меня.

XoFfiCEr ★★☆☆
()
Ответ на: комментарий от XoFfiCEr

А графика в разных диалектах всегда разная. В одних диалектах PLOT, а в других диалектах, например, PSET. Ну и т.д.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от XoFfiCEr

а что bash не может такое же сделать? или python?

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

question4 ★★★★★
()
Ответ на: комментарий от XoFfiCEr

А почему бы и нет? На ЛОРе есть разные люди, которые чем только ни пользуются.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от XoFfiCEr

Сайты, где брал программы, давно исчезли. Как пример работы — Figure 1 из https://journals.iucr.org/j/issues/2010/05/02/kk5061/kk5061.pdf (низ 2-й страницы). Получив на вход «P 43 21 2» или эквивалентную запись, программа выводит те же формулы. Как минимум, разделы «Asymmetric unit», «Symmetry operations», «Positions».

question4 ★★★★★
()
Ответ на: комментарий от yu-boot

Нет, в этом диалекте другие команды для рисования графики.

Вот примеры из интернета:

open window 400,400

line 0,0 to 400,400 
circle 200,200,150
clear fill circle 200,200,130
clear line 0,400 to 400,0
dot 200,200
a$=inkey$ 
clear window
text 100,200,"Hello !" 
print "Press any key to close the window" 
inkey$ 
close window
open window 320, 200

20 P=160: Q=100
30 XP=144: XR=1.5*3.1415927
40 YP=56: YR=1: ZP=64
50 XF=XR/XP: YF=YP/YR: ZF=XR/ZP
60 FOR ZI=-Q TO Q-l
70 IF ZI<-ZP OR ZI>ZP GOTO 150
80 ZT=ZI*XP/ZP: ZZ=ZI
90 XL=INT(0.5+SQRT(XP*XP-ZT*ZT))
100 FOR XI=-XL TO XL
110 XT=SQRT(XI*XI+ZT*ZT)*XF: XX=XI
120 YY=(SIN(XT)+0.4*SIN(3.0*XT))*YF
130 GOSUB 170
140 NEXT XI
150 NEXT ZI
160 PAUSE 10
END
170 X1=XX+ZZ+P
180 Y1=YY-ZZ+Q:Y1=199-Y1
190 LINE X1,Y1,X1,Y1-1
200 IF Y1=0 GOTO 220
210 CLEAR LINE X1,Y1+1,X1,199
220 RETURN
При этом графика, по ходу, монохромная.

У диалекта x11-basic, ЕМНИМС, с графикой получше.

saahriktu ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.