High-level language computer architecture: Difference between revisions

Content deleted Content added
Line 64:
Further, HLLCAs are typically optimized for a single language, supporting other languages more poorly. Similar issues arise in multi-language virtual machines, notably the Java virtual machine (designed for Java) and the .NET [[Common Language Runtime]] (designed for C#), where other languages are second-class citizens, and often must hew closely to the main language in semantics. For this reason lower-level ISAs allow multiple languages to be well-supported, given compiler support. However, a similar issue arises even for many apparently language-neutral processors, which are well-supported by C, and where [[source-to-source compiler|transpiling]] to C (rather than directly targeting the hardware) yields efficient programs and simple compilers.
 
The advantages of HLLCAs can be alternatively achieved in HLL Computer ''Systems'' ([[language-based system]]s) in alternative ways, primarily via compilers or interpreters: the system is still written in a HLL, but there is a trusted base in software running on an lower-level architecture. This has been the approach followed since circa 1980: for example, a Java system where the runtime environment itself is written in C, but the operating system and applications written in Java.
 
==Alternatives==