Robotics/Print version
4 stars based on
68 reviews
Nice effort, but I doubt it would be useful for anything semi-serious. It may leave 1. It gets worse when you use proper variable names. Sure, it is hard to program anything useful with the remaining 1. Most projects of this type are pretty worthless in actual utility, but as you said yourself, that is rarely the point. That way it may consume less memory. In a typical 8-bit interpreted BASIC from the day, the line number and initial space would be stored as a single bit unsigned integer, so your example line would be 7 bytes.
The variables would typically not be stored in registers on an 8-bit CPU registers are precious, after all. And remember these are bit variables, not 8. I make it 12 bytes. Z80 would be a little shorter because it has more registers and can use double-byte instructions. I never used Z80 back in the day, but I would imagine something like this:.
A basic compiler for avr chips was written many years ago and works great if someone would line follower code nxt robot bascom it where it would port directly to the ard kits. As it is you can still write your program in basic and send to the atmel chip isp. It is called Bascom avr. If you can find a copy I could zip it up for you as I bought it many years ago. It still runs under windows 7, xp or When line follower code nxt robot bascom in the Arduino IDE the basic interpreter code takes up bytes in the flash memory space.
Would allow a program to run without requiring any user inputs. Input output is the serial port… should wire up an old vt terminal: Longtime basic programmer here — huge wow on the b, and this is very cool!
By now most of us have moved on for this ever to be publicly useful but very neat indeed. Also, AVR instructions are 2 bytes in size, so if you use 1k flash you have only instructions. Getting anything down to less then 1k flash is quite impressive. It encourages bad design line follower code nxt robot bascom bad programming.
You guys kill me. BASIC was always my favorite language because it was easy, and could handle strings and math easily. What they really meant was that it was too easy to learn and apply, and threatened their status.
Give me a break. I program in a whole bunch of languages, but I tend to reach for the available tools to fix the problem, and that tends to include such much maligned things as BASIC, Bash scripts, VisualBasic on Windoze platforms, PHP and all the other Marmites of the programming world. What matters is that it does the job well, and is relatively easy to debug, and that in turn demands that the code be easy to follow.
Just started with Arduino so you say to learn c so should I learn c or the arduino language and If c then which c? Thats not far off from the vic20 I learned on. Basic opened the world of programming to me. We live in a poor country in a poor area so computers are very expensive. The arduino platform is not the solution to the problem you are stating. You can find other dev-boards that could fill this line follower code nxt robot bascom several of which have been discusses on HaD.
A more sensible solution would be refurnishing old office computers and bundling them with Linux. But fondness of childhood memories does not mean that basic has a place in modern computing. It is obsolete and not an education tool. There is a reason why education tools get rewritten every so often. That is because unlearning concepts now considered old is hard. It is at least unnecessary. Logic can be taught within a OOP paradigm just as easily without having to introduce ancient limitations, behaviours and methods.
You can do plenty of C or java or whatever on an old pentium II with modern software. The Arduino platform already is a cheap way of learning embedded dev. It already is a product for this audience. They gain nothing from basic, on any platform. It seems that the standard libraries and the stack space it needs to work for an Arduino project requires about bytes of RAM, I use 7 more for the interpreter, everything else is free for your BASIC code.
The sketch itself is 6, bytes, and an nearly empty sketch that echos characters on the serial port takes 1, bytes — so BASIC take 4, bytes. On a ATmega you have another 7K or so for line follower code nxt robot bascom your own statements or functions. You can decrease RAM usage by switching your strings and lookup tables to use program memory.
But I was wondering on a different approach, on having the whole program run from a SD card. Oh, where I think it might have a little value is in a classroom type environment. A knowledgeable tutor could extend the language a little for their environment like I did on my 3pi and upload it to the board. Then students would be able to just plug line follower code nxt robot bascom the Serial or USB cable, open a terminal window and hack away. You could do that with any form of written algorithmic logic.
Basic line follower code nxt robot bascom fundamentally flawed especially for learning. Unlearning bad practice is much harder to do then learning line follower code nxt robot bascom proper the first time. Basic underpinnings in coding skills are a handicap, not a springboard. Begin with pseudo-code and flowcharts, forget the computer first. Secondly introduce them to an environment that actually represents the computer they are supposed to program.
I guess the point of it for me is that there is 1, lines of hopefully the worst C you will ever see, that builds to 2, machine instructions and it implements something approaching a program editor and a programming language. Usually found after a nice memory-leak or heavy performance loss.
Of course, messing around with good old basic still is fun. Which I am all for. Ever since day 1 people have had some kind of arrogant attitude about Basic. The reason I started on this was because I was in awe of the original code, and wanted to truly understand it. The slightly disappointing thing is the size of the standard libraries used by Arduino.
All I use is Serial. Write and 1, bytes of Flash and few hundred of RAM are gone. It would line follower code nxt robot bascom probably be bigger, maybe line follower code nxt robot bascom, as the ATmega opcodes are either 16 or 32 bits, where early 8 bits CPUs had quite a few 8 bit opcodes — so my bytes is at most instructions. Clearly understandable keywords, no semicolons at the end of lines, no megabytes needed for compiler, excellent for first-time users.
It is not my intention to start a flamewar, but there is nothing wrong with Basic. Most often, problem is between the chair and the computer, not in the language used. The language paradigm that is basic is not a solution for the problems you listed, but possibly part of the cause.
Your odd comparison of jump instruction in machine code and a high-level goto statement show this. Basic does not equate at all to newer language paradigms and lower level languages, only somebody stuck in basic world would think that yes also VB, which is horror incarnate.
Basic lacks some of these pains because it is limited on top of obsolete and flawed. That is not line follower code nxt robot bascom solution. And working on the metal is the real way to learn, not on top of 5-th abstraction level. I suspect Arduino would have more followers with Basic compiler on PC side, than with current stuff.
Lack of hardware access, and overall slowness of the systems is appalling. Some questions raises this Yoda. In learning reading, writing and speaking it is equally counter productive with starting with the syntax and grammar used a few centuries ago. Although studies in these fields exist that require you to know oldthey are not meant for current day usages.
Words, structures, concepts and such are missing or radically different. I agree that starting with a higher level language is the best place to start, but I also think that real world applications and examples are equally important.
Basic is a programming language equivalent of cuneiform and not suitable for teaching coding in Working, but have a couple of issues to fix. And Tiny Basic is a great teaching tool. This whole argument about Basic not being proper is elitist. And modern VB is just as good for teach as C. You obviously have not seen VB.
BASIC was written without the idea of doubles, ints you just have numbers, and stringsstructures, and parameter passing in mind. So when people try to advance it, they end up in no-mans-land.
Adding functions to make it powerful or more systematic line follower code nxt robot bascom up having to re-code the wheel. Some of the Harvard arch chips need a few tweaks and considerations. C is powerful, logical, and systematic.