Sure... all code can be data if you want to look at it like that. Its just not a terribly useful place to argue from most of the time. Unless you plan on writing code that modifies or writes other code then you draw a line and your code isn't data.

See self-modifying. I've recently been spending time trying to treat perl code as data though most of the time there isn't much use to it. Most of my work is handled by perflectly mundane structures like hash tables, ordered lists, scalar variables. You can translate these concepts around into many different languages all of which eventually become machine language at which point the difference between code and data is what you plan to do with each.

For examples of perl code as data see (all of which have their own takes on the matter): Emily Dickenson in perl, Getting a code ref to main, Giving subroutines access to themselves, Auditing BEGIN blocks?, Trapping re 'debug', Allen Ginsberg - Is About, B::Deobfuscate - Deobfuscates symbol names and Module Modification at Runtime.

Added By the way - for canonical examples see Lisp macros, trampoline code (in particular linux trampoline because you can go find the source for that) and self-modifying assembly


In reply to Re: Algorithms, Datastructures and syntax by diotalevi
in thread Algorithms, Datastructures and syntax by BUU

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.