Files
eiffel-org/documentation/25.02/solutions/dotnet/eiffel-net-language/index.wiki
eifops 1a0353ee6c Created Documentation branch for 25.02
git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@2485 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
2025-02-06 19:48:22 +00:00

18 lines
1.3 KiB
Plaintext

[[Property:modification_date|Mon, 02 Oct 2023 14:01:34 GMT]]
[[Property:publication_date|Mon, 02 Oct 2023 14:01:34 GMT]]
[[Property:title|The Eiffel for .NET language]]
[[Property:weight|2]]
[[Property:uuid|ba6cd8d3-683c-4167-bdef-a0274c392f34]]
This section focuses on defining Eiffel for .NET. The key requirement for Eiffel for .NET is the exclusive use of the common language runtime with a minimum Eiffel-specific runtime. The second requirement is to generate IL code that is CLS compliant, meaning that other CLS compliant languages/compilers/tools will be able to reuse .NET components written in Eiffel for .NET. The last requirement is to generate verifiable IL code.
Because not all Eiffel functionalities are present in .NET, the task of the Eiffel compiler is made more complicated since it has to emulate those mechanisms instead of reusing what .NET provides. For example the common language runtime of .NET does not support:
* [[uuid:b8c10baa-4f50-adfe-a6f8-9cb56a8f1917#Multiple inheritance|multiple inheritance]]
* [[uuid:b8c10baa-4f50-adfe-a6f8-9cb56a8f1917#Genericity|genericity]] (only first versions of .NET)
* [[uuid:b8c10baa-4f50-adfe-a6f8-9cb56a8f1917#Covariance|covariance]]
* agents
We will see:
* what is Eiffel on .NET
* which Eiffel mechanisms have been implemented and which haven't.