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 the programming language SAS many people think it is interpreted. Actually the source code is compiled which creates an object deck. This object code is then used to create a load module. It is this load module that executes. As observed by the user the compile takes awhile but then executing the load module is lightening quick.
I do not think that SAS uses the Linage Editor or the Binder. I think SAS used the loader, which is essentially the Linkage Editor except instead of getting a load... moreFor the programming language SAS many people think it is interpreted. Actually the source code is compiled which creates an object deck. This object code is then used to create a load module. It is this load module that executes. As observed by the user the compile takes awhile but then executing the load module is lightening quick.
I do not think that SAS uses the Linage Editor or the Binder. I think SAS used the loader, which is essentially the Linkage Editor except instead of getting a load module on disk the executable code is created in storage and then it executes.
As I said before, for JAVA on z/OS the Java source code is compiled creating the class file, which I believe is byte code suitable for interpretation by the Java Virtual Machine. In z/OS this byte code is then used to create object code which is used to create a load module which is cached. Because it is cached it is only the first execution that goes through the process of creating the load module. For the second and all subsequent executions the load module is fetched from cache, bypass a lot of overhead.
I think that an IPL (boot) results in an empty cache and this process starts over. Fortunately z/OS can run for several years without an IPL so the JAVA based load modules will likely be in the cache for a very long time.