You're referring to Parallax Inc's "BASIC Stamp" products. I'm not aware of any other embedded BASIC interpreter, though maybe they've licensed out their core. These have been around since 1994 at least. Very cool hobby/prototyping devices.

Those who design circuitry must know every single bit which is allocated for every single purpose. Every state needs to be proofed, every branch of logic, every possible allocation of data must be predicted and reviewed. A worst-case must be known. All of this is because you really don't want to require a re-flash or replacement of the firmware. "Stateless transactions" is not just a goal, it's often a requirement.

As "high level" as BASIC is, you can still budget every byte: DIM the arrays, can't swap integer i% and real types and s$ strings. Strings are arbitrary in length, but early versions limited you to a 255 byte length, and I think Parallax is even more stingy. I don't think an array of strings is possible or recommended, unless perhaps in ROM.

The same limitations have been put into the PicoJava implementations. You can't just say Vector v = new Vector() whenever you feel like it. For solid designs, you need to know the world intimately, all the way down to each bytecode. At least the variable-sized automatic allocation stuff is mostly implemented in the class library: ditch those data structures classes, and you're almost back to a cannable language.

Perl's scalars are oriented towards arbitrary sizes for different types, as well as arbitrary capacity for arrays and hashes. Arrays grow and shrink, and you don't even want to know the number of ways a hash's internals must be able to be resized. All of this is purposely hidden from your view of the developer. It's not even clear how you'd manage to handicap the Perl language to provide fixed-sizing on it, while keeping it valuable and high-level, since it's all in the language, not the class library. And though some people know the Perl bytecode and SV/HV data types, etc., it's far from the everyday Perl when you have to live or die by direct use of them.

Just my feedback-- I'd like to hear others' take on it.

--
[ e d @ h a l l e y . c c ]


In reply to Re: Pico-Perl by halley
in thread Pico-Perl by rje

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.