Skip to main content
added 941 characters in body
Source Link

I think the distinction has become very gray. I was researching how to have Java call Matlab, tripped over the concept that Java is compiled while Matlab is, well, compiled to a lower level these days. Coming from a digital circuit design background, I know that even register level operations can be represented by a sequence of code corresponding to control flow logic for state machine transitions in state. Indeed, the code describing exactly how and when these "events" occur at a hardware level can look remarkably like 3GL source code (when described in Verilog, VHDL, SystemC). Do we call such high level views of low-level operations "source code" to be compiled? What if the operations are specified in detail so that there is no freedom for the compiler to make a decision on the final Boolean logic? Then it's just matter of labelling the hardware, states, and I/O with designer-friendly names -- is that still source code to be compiled? Even viewing zeros and ones in an editor is an abstraction, as the actual binary states are the result of transistor gate layouts with certain charge levels and voltages at certain nodes. Along these lines, should we consider logic cell selection, layout, and interconnect routing as degrees of freedom that qualify the mapping of coded description to hardware & its operation as "compilation"?

Despite the blurring, however, I still think of Matlab as interpretted-like, since it has an interactive command line. I can navigate and manipulate data objects in between command line statements. VBA is compiled, but it has the "Immediate Window" wherein I can do the same. C++ debuggers give me a similar kind of environment, though I haven't used a 3GL in decades, and the functionality was quite awkward back in the day. Then again, Java is "compiled" and a web search shows that it too has an interactive command line in which to learn Java (which I do not know).

All this to say that even if we draw back from the technical details and look at the question only from the black-box perspective of how it feels and what one can do at the console, it's still pretty blurry.

I think the distinction has become very gray. I was researching how to have Java call Matlab, tripped over the concept that Java is compiled while Matlab is, well, compiled to a lower level these days. Coming from a digital circuit design background, I know that even register level operations can be represented by a sequence of code corresponding to control flow logic for state machine transitions in state.

Despite the blurring, however, I still think of Matlab as interpretted-like, since it has an interactive command line. I can navigate and manipulate data objects in between command line statements. VBA is compiled, but it has the "Immediate Window" wherein I can do the same. C++ debuggers give me a similar kind of environment, though I haven't used a 3GL in decades, and the functionality was quite awkward back in the day. Then again, Java is "compiled" and a web search shows that it too has an interactive command line in which to learn Java (which I do not know).

All this to say that even if we draw back from the technical details and look at the question only from the black-box perspective of how it feels and what one can do at the console, it's still pretty blurry.

I think the distinction has become very gray. I was researching how to have Java call Matlab, tripped over the concept that Java is compiled while Matlab is, well, compiled to a lower level these days. Coming from a digital circuit design background, I know that even register level operations can be represented by a sequence of code corresponding to control flow logic for state machine transitions in state. Indeed, the code describing exactly how and when these "events" occur at a hardware level can look remarkably like 3GL source code (when described in Verilog, VHDL, SystemC). Do we call such high level views of low-level operations "source code" to be compiled? What if the operations are specified in detail so that there is no freedom for the compiler to make a decision on the final Boolean logic? Then it's just matter of labelling the hardware, states, and I/O with designer-friendly names -- is that still source code to be compiled? Even viewing zeros and ones in an editor is an abstraction, as the actual binary states are the result of transistor gate layouts with certain charge levels and voltages at certain nodes. Along these lines, should we consider logic cell selection, layout, and interconnect routing as degrees of freedom that qualify the mapping of coded description to hardware & its operation as "compilation"?

Despite the blurring, however, I still think of Matlab as interpretted-like, since it has an interactive command line. I can navigate and manipulate data objects in between command line statements. VBA is compiled, but it has the "Immediate Window" wherein I can do the same. C++ debuggers give me a similar kind of environment, though I haven't used a 3GL in decades, and the functionality was quite awkward back in the day. Then again, Java is "compiled" and a web search shows that it too has an interactive command line in which to learn Java (which I do not know).

All this to say that even if we draw back from the technical details and look at the question only from the black-box perspective of how it feels and what one can do at the console, it's still pretty blurry.

Source Link

I think the distinction has become very gray. I was researching how to have Java call Matlab, tripped over the concept that Java is compiled while Matlab is, well, compiled to a lower level these days. Coming from a digital circuit design background, I know that even register level operations can be represented by a sequence of code corresponding to control flow logic for state machine transitions in state.

Despite the blurring, however, I still think of Matlab as interpretted-like, since it has an interactive command line. I can navigate and manipulate data objects in between command line statements. VBA is compiled, but it has the "Immediate Window" wherein I can do the same. C++ debuggers give me a similar kind of environment, though I haven't used a 3GL in decades, and the functionality was quite awkward back in the day. Then again, Java is "compiled" and a web search shows that it too has an interactive command line in which to learn Java (which I do not know).

All this to say that even if we draw back from the technical details and look at the question only from the black-box perspective of how it feels and what one can do at the console, it's still pretty blurry.