I'm putting this in DevOps for archiving, but it's for the main board also... many of you have comp sci backgrounds, though I have taken a lot of comp sci courses (my degrees are in CIS) I don't know the answer to this question: how do interpreted languages like Python and PERL handle the step after compilation where the object code needs to be linked with and libraries and subprograms needed? It would seem that this would make interpreted vs compiled languages unfeasibly slow... too slow for ... moreI'm putting this in DevOps for archiving, but it's for the main board also... many of you have comp sci backgrounds, though I have taken a lot of comp sci courses (my degrees are in CIS) I don't know the answer to this question: how do interpreted languages like Python and PERL handle the step after compilation where the object code needs to be linked with and libraries and subprograms needed? It would seem that this would make interpreted vs compiled languages unfeasibly slow... too slow for something like Firefox to be written in Python. I know interpreters have gotten a lot faster, but fast enough to ostensibly skip the link-edit step?
Wayne BeaversFor REXX you have 3 choices on how to run it.
1. You can interpret the source, in which case byte code is generated but not saved.
2. You can run the source through the compiler and save the byte code for execution.
3. You can run the compiler and create an object deck and that can be link-edited with all of the classic compiled languages (Fortran, COBOL, PL/I)
For JAVA the compiler creates a CLASS file, much like on other platforms. However, the first time it is executed the JAVA VM will take ... moreFor REXX you have 3 choices on how to run it.
1. You can interpret the source, in which case byte code is generated but not saved.
2. You can run the source through the compiler and save the byte code for execution.
3. You can run the compiler and create an object deck and that can be link-edited with all of the classic compiled languages (Fortran, COBOL, PL/I)
For JAVA the compiler creates a CLASS file, much like on other platforms. However, the first time it is executed the JAVA VM will take the byte code and create an MVS loadmodule (Just In Time). This is cached for future use. If you read the POO (aka POP, Principles of operation) you may notice that many of the hardware instructions that have been added over the last 10 years or so are very complex instructions that were created to make JAVA run faster.
A friend of mine maintains the Principles of Operations manual. I mentioned to him around 2011 that the rate of adding new hardware instructions to the mainframe is higher now than at any other time in the history of the platform, not including the first day it shipped. He said I probably was right.The last time I looked he had around 8 US patents for new instructions on the z platform.