BASIC in C++
github.com
BASIC in C++
1–10 of 19 posts
Re: BASIC in C++
#2Re: BASIC in C++
#3Re: BASIC in C++
#4I can't decide if this is brilliant or terrifying.
Re: BASIC in C++
#5Re: BASIC in C++
#6Wasn't the original Bourne shell also written with (more basic) C preprocessor macros to imitate original ALGOL-style constructs?
But the macros were the least of its problems: It allocated memory by trapping SIGSEGV (SIGnal for SEGmentiation Violation; that is, the signal the OS sends a program when it's tried to access memory beyond the region it owns); the function which caught SIGSEGV allocated more RAM. This made it difficult to port sh to the Motorola 68000-based computers which were the first generation of Unix workstations.
Re: BASIC in C++
#7 #include "basic.hpp"
_10: LET X = 1;
// ...
_150: END
I think multiple data types could also be added in a way that mostly fits with BASIC syntax. GW-BASIC uses sigil suffixes on variable names to denote their type:[1] $ String variable
% Integer variable
! Single-precision variable (default)
# Double-precision variable
Something like this might be possible with unions (e.g. _10: LET X.D = 3.14; _20: LET N.I = 42;), or you can tolerate a few different LET macros (LETS, LETI, LETD).[1] http://www.antonis.de/qbebooks/gwbasman/chapter%206.html
Re: BASIC in C++
#8 ] 10 PRINT "HELLO'
] RUN
ERROR
In file included from dummy.cpp:1:
In file included from /usr/include/c++/v1/vector:243:
In file included from /usr/include/c++/v1/__bit_reference:15:
In file included from /usr/include/c++/v1/algorithm:594:
/usr/include/c++/v1/memory:1425:36: error: calling a private constructor of class 'std::__1::unique_ptr >'
::new ((void*)__p) _Tp(_STD::forward(__args)...);
^
/usr/include/c++/v1/memory:1358:14: note: in instantiation of function template specialization
'std::__1::allocator_traits > >
>::__construct >, std::__1::unique_ptr > &>' requested here
{__construct(__has_construct(),
^
/usr/include/c++/v1/vector:781:25: note: in instantiation of function template specialization
'std::__1::allocator_traits > >
>::construct >, std::__1::unique_ptr > &>' requested here
__alloc_traits::construct(__a, _STD::__to_raw_pointer(this->__end_), *__first);
^
/usr/include/c++/v1/vector:924:9: note: in instantiation of function template specialization
'std::__1::vector >,
std::__1::allocator > >
>::__construct_at_end > *>' requested here
__construct_at_end(__x.__begin_, __x.__end_);
^
dummy.cpp:7:37: note: in instantiation of member function 'std::__1::vector >, std::__1::allocator > >
>::vector' requested here
std::vector> bar = foo;
^
/usr/include/c++/v1/memory:1997:5: note: declared private here
unique_ptr(const unique_ptr&);
^
1 error generated.Re: BASIC in C++
#9I can't decide if this is brilliant or terrifying.
Programmers can (and do) still create DSLs in D by using string mixins and CTFE.
Re: BASIC in C++
#10A shame that newer versions of Windows have problems installing it.
There is Jabaco that takes VB 6.0 syntax and compiles it to Java bytecode: http://www.jabaco.org/
It doesn't have ADO database support so I can't write apps with Databases in VB 6.0 and port them to Jabaco.
This trying to make C++ do BASIC commands is hard, might as well use this instead: http://robhagemans.github.io/pcbasic/
You can find the Classic BASIC games here: http://www.vintage-basic.net/games.html
They should work with PC-BASIC.