The basic function of the development tool is to compile functions, and the tester cannot be considered the most basic module.
So far, development tools from the original assembly tool to non-integrated development environment, to the integrated environment of the character state, and finally the current visual integrated environment
The main module is divided into compilation modules, debug modules, libraries, including class libraries and basic libraries, editors
Most of the analysis is mainly compiled and debugged, and the library analysis is used as an independent portion, and the editor will be analyzed, because after the need to wait for the demand analysis of all modules, you can get
A basic interface table, this table is an interface between editors and modules, so that the editor analysis will be more comprehensive.
And all interface details will be obtained after the module is analyzed by view angle.
Part 1 basic function analysis
I. Compiler analysis
Compiler - Translate some of the source code of a specified language into some specified target code, and check if the static logic in the source code is in line with language definitions.
Basic includes three blocks: language selection, error check, translation
The compiler is a simple data stream processing process, analyzing the source code, finds a syntax error, and the judgment is correct, convert the source code into an intermediate code, optimize, and finally press hardware
Ask to transform into a target code, this is the basic operation of the compiler
The basic structure is as follows:
Source - lexical analysis (word definition rules) || - grammatical analysis (syntax definition rules) | | - Semantic analysis (Semantic Description Rules) || - Code Optimization (Optimization Rule) || - Intermediate Code Generation ( Conversion rules) || - Target Code Generation (Conversion Rule) || - Executable File (Code Connection Rule)
1. Computer language analysis
When each language is generated, it is said that it is the best. At least in a certain aspect, the actual situation, individual thinks, in the computer language to now, or to stress which language is suitable for?
Essentially is a business operation, not the language itself
Mainstream development language, such as:
ADA - The US government has pushed the language, but it can't be widely used.
C - is widely used, but the definition is not strict
Pascal - The definition is very strict, long-term use is used for teaching, but almost eliminated, but fortunately, Delphi recovered his life.
C - source from C is widely used, but there are many unstrues like C
VB - Low threshold language, in the first stage of the window, due to monotonic development tools, make it widely used
Java - is generated in commercial competition, as a network development tool, is not good, not suitable for underlying development
C # - New varieties, existence, and Java, etc., its application structure is good, how to develop how to proof everything
1) Characteristics of language from the development trend
The development trend of language is gradually narrowing, and the communication interface between various languages is a commercial disorder of artificial manufacturing. It is being standardized and gradually eliminated, and some early conventions used in language, such as
The allocation method, the parameter arrangement, the object garbage collection, etc. are all independent of the language, which is the agreement between the operating system and the compiler.
Language - is an expression rule that makes the user easy to describe the logic of you need expression in a certain format.
Now after long-term commercial publicity, most people have caused the following misunderstandings, such as C is VC or C Builder, Pascal is Delphi, put language and a complete development tool, etc.
The same, makes it in a certain language inevitably use a certain development tool, is an embodiment of a commodity rigid developer's idea. It belongs to a relatively successful business behavior. From a certain extent, the developers have been in the commercial product, always Busy in a variety of language learning, mainly learning various development tools
Language development After the optimal analysis is promoted, in addition to the original keyword difference, the symbols used on the class are basically the same, due to the large number of development libraries, the language side focusing from the base
In the expression of this statement, in the steering class library design, the class library itself is an object-oriented product, there is no trace of traditional languages, so the class library of each development language tool is similar to the unfour and recent C #, the first eye It seems that Java or Delphi, and the image of C / C is very different, telling the future of the world in a clear way.
2) Some division of labor in language
Early language is born for some specific purposes, such as Basic is an interpretation language, but the language is developing, it is still a language division of labor, it is still an interpretation language, and it once Wandered, the reason is that VC is more difficult or unfriendled, and the BC that can compete can not keep up with the era.
It was eliminated, so that the format of VC reserved until there was no change, and individuals believe that it is a style that seriously restricts freedom.
Just like it, VB is interface and database, VC to do the bottom, saying that it is a commercial strategy of Microsoft, and the language itself is independent.
In fact, for general users, it is an interpretation or compiling essential differences. If they consider the results of the problem, whether they can get a speed satisfactory executable,
The interpreted language has now formed an executable file, but also constantly improving efficiency, from the results, the compilation type is not different, the intermediate implementation process and language are independent, because there is no legal order
Ding Basic must be interpreted, the same code is to interpret it or compiled, it is not a difference in language itself, purely a business operation.
After all, the market is monopoly, the developer has specified so, and the user can only think so.
Because of this, and VB's characteristics of Delphi and C Builder appear on the visual programming tool, it gains a good reputation, but the C Builder is in the market.
If there is a hidden, it has been unfavorable, this is a strong comparison with the popularity of Delphi, because the two are essentially an interface and a class library and a library, the difference is only the keyword called different
Maybe it is unwilling to conflict with Microsoft VCs, take a low posture.
3) The development of the recent language From Delphi, C Builder and Kylix you can see that Borland is fully utilizing the language of language, easy to expand its product line, and guarantees that they are uniform interface, basically consistent
The class library, and the same debugging method, you can see its good intentions, fight against traditional language and Microsoft
And Microsoft's C # core .NET plan, the same plan to try to unify the platform, but it is built in a new language, which is a risk, but fortunately, the strength of Microsoft is strong, there is a forced push
The power of a wide-dimensional language, and it is based on a language, from the middle code, and the intermediate code transformation is adapted to various hardware platforms, substantive and GCC can adapt to various platforms.
The essence is the same (whether it is plagiarism)
Java has experienced the development of the cross-century, and now it has become a standard, facing the challenge of Microsoft C #, plus the form of compilation to limit the speed, can say that the future road is difficult, after all, I will imitate its new language will appear, and Java will inevitably be more aging, see if its own changes can be followed by the era, and if it is not entered.
Summary: 1) Language Trend 2) Development of new language costs and risk, cycle too long conclusion:
1) Do not develop new language type 2) Change the structure of the compiler so that it is no longer limited to a specific language
With the unified interface, the interface is not changed, absorb the form of various languages, and it can be directly used in the language of failing, and the good language can be used directly, save the risk of promoting new languages, and more suitable for the country
In-form, and simple algorithm breakthrough is not enough to change the existing compilation structure, unless the compilation theory has a major breakthrough, even if it is true, it only needs to change the function of the first half of the compiler.
After all, the target code generated is still a machine code, and the large change in the semi-part is that the computer structure is likely to change, and that is just the second half of the compiler, and language
Itself is independent
So focus on the structure of the compiler