1

Topic: Re: extracodes at synthesis of programs

Hello, , you wrote: > Never heard about intention to create the hardware Lisp-processor. Now more actually the processor for a byte-code Well so it somewhere it also is. The Byte-code of Lispa and byte-code in essence JVM differ only properties of entities which are hidden behind objects (though it "only" covers 99 % of specificity). > I so understood that the author - the supporter of CISC-commands and number of these commands all the same does not suffice it Anything surprising, it is the general tendency for the person who though sometimes writes or reads the assembler. The epoch conscious RISC came when began to load probably to compilers sufficient intelligence that they systematically beat the normal coder as assemblage.

2

Re: Re: extracodes at synthesis of programs

3

Re: Re: extracodes at synthesis of programs

Hello, , you wrote:" Because of singularities of command system BESM-6, those extracodes reminded the additional built in instructions, than, for example, function invocation in MS-DOS by means of INT 21H really more. The sense of the term "extracode" is quite transparent: this extension of command system to create from the real machine the virtual machine for the given language, for example, the Pascal-car or the Lisp-car ". The Most common value of the term"extracode"in BESM-6 was"system function", as well as in any other OS. Any basic"singularities"of command system there was not - simply under the operation code it has been selected six fixed discharges, 40 commands have been defined, and the codes 050-077 (octal) were used under those extracodes of OS. Thus even the structure turned out very similar: in OS of DisPak the most"running"extracode was 050 (hundreds different functions, as well as in int 21h), and on remaining it has been hung up much less functions, as on int 2ah or 2fh. The difference was only that the operation code in an extracode of OS of DisPak was normally transferred in an address part of a command while in a command int parameters it is not provided, therefore the code was transferred in AH. Never heard about usage of extracodes BESM-6 for implementation of "virtual machines" of high level - in the main local OS of DisPak  interception and handling of reserve commands were possible only at kernel level, handling transmission on the user level created very big overhead charge, therefore was used only for exception handling. For implementation of "macrofunctions" was much cheaper to fulfill a normal call. Well and it is a little strange to see reasonings of the author on any "optimization" near to a sentence about usage of extracodes. Any extracode (that is, the reserve code of hardware operation) on determination causes an exception which handling involves a noticeable overhead charge. Constructed on such principle virtual machines will be either simply slow, or extremely slow - that is, fits unless for the demonstratsionno-educational purposes.

4

Re: Re: extracodes at synthesis of programs

Hello, , you wrote: > it is a lot of years programmers itself convince: there is no need to climb in the assembler, all compilers make. Then somebody digs, for example, http://rsdn.org/article/submit/comparat … esting.xml the Author slightly more deeply (: Harchenko Andrey Vladimirovich Data: 3/18/2014 comparative testing of five methods of comparing of the buffers accessible from C# by which results are given  in a choice of this or that method Is produced. Separate functions are decompiled, and the code, .Net by a JIT compiler for a configuration x86 is analyzed. Comparing of the machine code generated by a JIT compiler with the code, the machine code of function CRT of similar assignment is produced. - it is clarified they do not do a horse-radish:" In the theory the JIT compiler is capable to work wonders optimization, but in practice does not do it ". Directly and more or less naturally the assembler is accessible only from languages of type of a C/C ++ (and that is a tendency to shop swerving), and from C#/Java - only through calls of functions. If the function intended for a call from C#/Java to write on a C/C ++ - in 99 % of cases of it will be enough completely. And to optimize the assembler the code on a C/C ++ it is valid . For the specific operations executable in a cycle of ten thousand once a second, it was possible to me to benefit at MSC 12.00-15.00 pity units of percent, and this scoring descended practically on is not present after thoughtful manual optimization  the code.

5

Re: Re: extracodes at synthesis of programs

Hello, , you wrote: N>> And I speak here about typical application-oriented tasks. Instead of about special cases. > yes as a whole also I do not argue. But all the same  remains. Many years programmers convince themselves: there is no need to climb in the assembler, all compilers make. Then somebody digs, for example, http://rsdn.org/article/submit/comparat … esting.xml the Author slightly more deeply (: Harchenko Andrey Vladimirovich Data: 3/18/2014 comparative testing of five methods of comparing of the buffers accessible from C# by which results are given  in a choice of this or that method Is produced. Separate functions are decompiled, and the code, .Net by a JIT compiler for a configuration x86 is analyzed. Comparing of the machine code generated by a JIT compiler with the code, the machine code of function CRT of similar assignment is produced. > - it is clarified they do not do a horse-radish:" In the theory the JIT compiler is capable to work wonders optimization, but in practice does not do it ". So as a result someone  a template of a situation and again it will not be necessary to climb there. N>> therefore you will not find in a normal exhaust xchg > well and in vain. For example, in GO there is an operator of an exchange of type: x, y=y, x > And the author with whom I am familiar also whose articles I spread, the first finishing to language (instead of in the compiler) imported in the form of the operator of an exchange x <=> y (the Author see http://rsdn.org/article/pl1/pl1.xml (): Loaves Dmitry Jurevich Data: 11/30/2012 Article is devoted the description of the changes imported to language PL/1 at attending of the compiler.) . The operator of an exchange is convenient also god ordered to use for this purpose xchg. Perhaps and in vain. But advantages from the integral approach normally above, and the exchange case in point is very rare specificity. N>> the assembler remained to system analysts,  and to hackers. > and that unfortunate which programs work insufficiently quickly Yes, and it too. In the event that at them a minute quantity very much bottlenecks is valid.

6

Re: Re: extracodes at synthesis of programs

Hello, , you wrote: N>> the exchange case in point is very rare specificity. > yes is not present, not so rare: sorting, semaphores. Semaphores - can be, but what their part remained on simple xchg? And if it is used, within the limits of ready more difficult sequence (as on modern x86 it will include in itself, if  in a kernel, mwait, and if in userland it will be issued in intrinsic type atomic_exchange). Sorting - so x86 does not allow to exchange two cells directly in storage and if through registers no advantage already is present (except temporal saving of one register), and forced lock at xchg in x86 can spoil all pattern only. N>>>> the assembler remained to system analysts,  and to hackers. >>> and that unfortunate which programs work insufficiently quickly N>> Yes, and it too. In the event that at them a minute quantity very much bottlenecks is valid. > Certainly. Problem in that if the person at all does not represent that actually does the processor at performance of its program, it will be bad to search for these bottlenecks and will not represent as with them to struggle. Algorithmic optimization is almost always more important purely assembly, and for analysis of an output of the profiler the assembler is not necessary.