Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Cross compiler
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== 1987 === C programs had long been linked with modules written in [[assembly language]]. Most C compilers (even current compilers) offer an assembly language pass (that can be tweaked for efficiency then linked to the rest of the program after assembling). Compilers like Aztec-C converted everything to assembly language as a distinct pass and then assembled the code in a distinct pass, and were noted for their very efficient and small code, but by 1987 the optimizer built into Microsoft C was very good, and only "mission critical" parts of a program were usually considered for rewriting. In fact, C language programming had taken over as the "lowest-level" language, with programming becoming a multi-disciplinary growth industry and projects becoming larger, with programmers writing user interfaces and database interfaces in higher-level languages, and a need had emerged for cross language development that continues to this day. By 1987, with the release of MSC 5.1, Microsoft offered a cross language development environment for MS-DOS. 16-bit binary object code written in assembly language ([[MASM]]) and Microsoft's other languages including [[QuickBASIC]], [[Pascal (programming language)|Pascal]], and [[Fortran]] could be linked together into one program, in a process they called "Mixed Language Programming" and now "InterLanguage Calling".<ref>[http://support.microsoft.com/kb/35965 Which Basic Versions Can CALL C, FORTRAN, Pascal, MASM]</ref> If [[BASIC]] was used in this mix, the main program needed to be in BASIC to support the internal [[runtime system]] that compiled BASIC required for garbage collection and its other managed operations that simulated a BASIC [[interpreter (computing)|interpreter]] like [[QBasic]] in MS-DOS. The [[calling convention]] for C code, in particular, was to pass parameters in "reverse order" on the [[call stack|stack]] and return values on the stack rather than in a [[processor register]]. There were other programming rules to make all the languages work together, but this particular rule persisted through the cross language development that continued throughout [[Microsoft Windows|Windows]] 16- and 32-bit versions and in the development of programs for [[OS/2]], and which persists to this day. It is known as the [[Pascal calling convention]]. Another type of cross compilation that Microsoft C was used for during this time was in retail applications that require [[handheld device]]s like the [[Symbol Technologies]] PDT3100 (used to take [[inventory]]), which provided a link library targeted at an [[Intel 8088|8088]] based [[barcode reader]]. The application was built on the host computer then transferred to the handheld device (via a [[serial cable]]) where it was run, similar to what is done today for that same market using [[Windows Mobile]] by companies like [[Motorola]], who bought Symbol.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)