<p>Most of the important work on generics for C# was done by Andrew Kennedy at Microsoft Research Cambridge. He has a <a href="http://research.microsoft.com/en-us/um/people/akenn/generics/index.html" rel="nofollow">web page</a> devoted to the topic. A fairly recent paper discussion the foundations is <a href="http://research.microsoft.com/pubs/64042/ecoop06.pdf" rel="nofollow">this one</a> (which definitely looks like theory to me).</p>

<p>More recent, but interesting, work went into the design of <a href="http://research.microsoft.com/en-us/um/cambridge/projects/comega/" rel="nofollow">C$\omega$</a>. Also looking at the rather large amount of literature on Java generics, such as <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.109.1141&amp;rep=rep1&amp;type=pdf" rel="nofollow">Featherweight Java</a>, will also help. If you really want to start looking at the foundations, consider Cardelli's work on <a href="http://lucacardelli.name/indexPapers.html#Types%20and%20Semantics" rel="nofollow">Types and Semantics</a>, and perhaps consider looking at <a href="http://en.wikipedia.org/wiki/System_F" rel="nofollow">System F</a> (and the original papers of Reynolds and Girard).</p>

CC BY-SA 2.5
2010-12-19T17:13:44.137Z
Great answer. It reversed my vote on the question.  I still believe this is really software engineering, but definitely the more theoretic side.
Derrick Stolee
CC BY-SA 2.5
2010-12-20T14:25:02.523Z
Thank you for your kind words. In mind, theoretical computer science is a continuum, which dips its PL theory end into software engineering. Also, in my mind software engineering is fuzzy with loads of UML diagrams.
Dave Clarke
CC BY-SA 2.5
2011-01-29T16:05:28.547Z
Also by Andrew Kennedy on that subject is this paper: http://research.microsoft.com/en-us/um/people/akenn/generics/designandimplementationofgenerics.pdf
Johannes Rudolph
CC BY-SA 2.5
2010-12-19T09:10:52.097Z
2010-12-19T10:01:39.757Z
2010-12-19T10:01:39.757Z
Dave Clarke
<p>What are the most significant research papers on the foundations of generics in C# and .NET?</p>

CC BY-SA 2.5
2010-12-18T18:46:51.767Z
Hello @Kariem: This site is for research level questions in theoretical computer science, and your problem may not be in scope here. As a programming language related problem, maybe you can try [StackOverflow](http://stackoverflow.com/) or [Programmers](http://programmers.stackexchange.com/) for help!
Hsien-Chih Chang 張顯之
CC BY-SA 2.5
2010-12-18T19:29:26.287Z
The question appears to be too unfocused.  I voted to close it as not a real question.  See also [how to ask a good question](http://meta.cstheory.stackexchange.com/questions/300/how-to-ask-a-good-question).
Tsuyoshi Ito
CC BY-SA 2.5
2010-12-18T19:46:59.913Z
@Hsien-Chih Chang, I did ask at SO but it was closed: http://stackoverflow.com/questions/4479523/c-generics-research-papers
Kariem Ali
CC BY-SA 2.5
2010-12-18T20:10:03.367Z
This is really a software-engineering question.  I don't think they have an overflow-like website, but you won't find many SE experts here.
Derrick Stolee
CC BY-SA 2.5
2010-12-18T20:13:15.080Z
Kariem, I think it would help if you explain why this question is a theoretical computer science question. Only *theoretical* PL questions are on topic here.
Kaveh
CC BY-SA 2.5
2010-12-18T20:18:17.263Z
@Derrick @Kaveh, I mean the design and implementation of Generics in C# and .NET. Maybe that didn't come through in my question. I think this is a programming languages research question. A good example is this paper that had the initial proposal for generics in C# and .NET: http://portal.acm.org/citation.cfm?id=381694.378797
Kariem Ali
CC BY-SA 2.5
2010-12-18T21:30:31.847Z
Kariem, this site is for **theoretical** computer science questions, I don't think that general PL questions like those related to *implementation* are on-topic here, so I am voting to close the question as off-topic. (ps: [your question on SO](http://stackoverflow.com/questions/4479523/c-generics-research-papers) is closed not because it is off-topic there but because of other issues, try to address them on SO and they will hopefully reopen your question.)
Kaveh
CC BY-SA 2.5
2010-12-18T21:30:57.913Z
@Hsien-Chih Chang, please do not discourage people to ask programming language questions, [which are in scope](http://meta.cstheory.stackexchange.com/questions/446/broadening-the-scope-of-questions). There's plenty of theory-heavy work in PL. See, eg, [this](http://www-2.cs.cmu.edu/afs/cs/user/crary/www/819-f09/Moggi89.pdf) and [this](http://scholar.google.co.uk/scholar?cluster=7229327518917241732). (This particular question, though, sounds like "Could you point me to research in graph algorithms?", ie, it's vague.)
Radu GRIGore
CC BY-SA 2.5
2010-12-18T23:06:27.823Z
I vote to keep the question. If it weren't so late, I'd provide a an answer too. This is, potentially, about PL theory. More tomorrow.
Dave Clarke
CC BY-SA 2.5
2010-12-18T23:17:12.367Z
Thanks Dave. I have edited the question to make it less vague.
Kariem Ali
CC BY-SA 2.5
2010-12-19T00:37:37.590Z
I do not know how the edit in revision 2 is supposed to make the question less vague.
Tsuyoshi Ito
CC BY-SA 2.5
2010-12-19T04:11:48.040Z
@Radu: Sorry for the misleading comment, I am not intended to do so. What do I really want to say is that this problem is (currently) a reference request for papers in specific programming languages, which is not a theoretical problem (currently) and is [out of scope](http://meta.cstheory.stackexchange.com/q/115/1800) (Or it isn't? Maybe I am totally wrong here). I'd love to see if the question is being modified, and becomes a theory problem. Thank you all for pointing out my wrong redirection, and @Kariem I hope you will get good answers here!
Hsien-Chih Chang 張顯之
CC BY-SA 2.5
2010-12-19T11:31:21.813Z
I answered the question assuming that you were asking for the foundations of C# generics. It would have been better to be more precise in your question. Were you after foundations? Implementations? Exotic uses of C# generics?
Dave Clarke
CC BY-SA 2.5
2010-12-19T13:16:37.987Z
Thank you very much Dave. I was after the foundations of generics in C#. I edited the question to reflect that. Your answer was very helpful.
Kariem Ali
<pl.programming-languages>
C# Generics Research Papers
Kariem Ali
# C# Generics Research Papers

(Asked by: username_0 on 2010-12-18)

What are the most significant research papers on the foundations of generics in C# and .NET?

**Tags:** pl.programming-languages

> **Comments:**
> **username_1**: Hello @Kariem: This site is for research level questions in theoretical computer science, and your problem may not be in scope here. As a programming language related problem, maybe you can try [StackOverflow](http://stackoverflow.com/) or [Programmers](http://programmers.stackexchange.com/) for help!  
> **username_2**: The question appears to be too unfocused.  I voted to close it as not a real question.  See also [how to ask a good question](http://meta.cstheory.stackexchange.com/questions/300/how-to-ask-a-good-question).  
> **username_0**: @Hsien-Chih Chang, I did ask at SO but it was closed: http://stackoverflow.com/questions/4479523/c-generics-research-papers  
> **username_3**: This is really a software-engineering question.  I don't think they have an overflow-like website, but you won't find many SE experts here.  
> **username_4**: Kariem, I think it would help if you explain why this question is a theoretical computer science question. Only *theoretical* PL questions are on topic here.  
> **username_0**: @Derrick @username_4, I mean the design and implementation of Generics in C# and .NET. Maybe that didn't come through in my question. I think this is a programming languages research question. A good example is this paper that had the initial proposal for generics in C# and .NET: http://portal.acm.org/citation.cfm?id=381694.378797  
> **username_4**: Kariem, this site is for **theoretical** computer science questions, I don't think that general PL questions like those related to *implementation* are on-topic here, so I am voting to close the question as off-topic. (ps: [your question on SO](http://stackoverflow.com/questions/4479523/c-generics-research-papers) is closed not because it is off-topic there but because of other issues, try to address them on SO and they will hopefully reopen your question.)  
> **username_5**: @Hsien-Chih Chang, please do not discourage people to ask programming language questions, [which are in scope](http://meta.cstheory.stackexchange.com/questions/446/broadening-the-scope-of-questions). There's plenty of theory-heavy work in PL. See, eg, [this](http://www-2.cs.cmu.edu/afs/cs/user/crary/www/819-f09/Moggi89.pdf) and [this](http://scholar.google.co.uk/scholar?cluster=7229327518917241732). (This particular question, though, sounds like "Could you point me to research in graph algorithms?", ie, it's vague.)  
> **username_6**: I vote to keep the question. If it weren't so late, I'd provide a an answer too. This is, potentially, about PL theory. More tomorrow.  
> **username_0**: Thanks Dave. I have edited the question to make it less vague.  
> **username_2**: I do not know how the edit in revision 2 is supposed to make the question less vague.  
> **username_1**: @Radu: Sorry for the misleading comment, I am not intended to do so. What do I really want to say is that this problem is (currently) a reference request for papers in specific programming languages, which is not a theoretical problem (currently) and is [out of scope](http://meta.cstheory.stackexchange.com/q/115/1800) (Or it isn't? Maybe I am totally wrong here). I'd love to see if the question is being modified, and becomes a theory problem. Thank you all for pointing out my wrong redirection, and @Kariem I hope you will get good answers here!  
> **username_6**: I answered the question assuming that you were asking for the foundations of C# generics. It would have been better to be more precise in your question. Were you after foundations? Implementations? Exotic uses of C# generics?  
> **username_0**: Thank you very much Dave. I was after the foundations of generics in C#. I edited the question to reflect that. Your answer was very helpful.  

---

## 1 answers

### Answer by username_6 on 2010-12-19. Score: 22 | Accepted answer

Most of the important work on generics for C# was done by Andrew Kennedy at Microsoft Research Cambridge. He has a [web page](http://research.microsoft.com/en-us/um/people/akenn/generics/index.html) devoted to the topic. A fairly recent paper discussion the foundations is [this one](http://research.microsoft.com/pubs/64042/ecoop06.pdf) (which definitely looks like theory to me).

More recent, but interesting, work went into the design of [C$\omega$](http://research.microsoft.com/en-us/um/cambridge/projects/comega/). Also looking at the rather large amount of literature on Java generics, such as [Featherweight Java](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.109.1141&rep=rep1&type=pdf), will also help. If you really want to start looking at the foundations, consider Cardelli's work on [Types and Semantics](http://lucacardelli.name/indexPapers.html#Types%20and%20Semantics), and perhaps consider looking at [System F](http://en.wikipedia.org/wiki/System_F) (and the original papers of Reynolds and Girard).

> **Comments:**
> **username_3**: Great answer. It reversed my vote on the question.  I still believe this is really software engineering, but definitely the more theoretic side.  
> **username_6**: Thank you for your kind words. In mind, theoretical computer science is a continuum, which dips its PL theory end into software engineering. Also, in my mind software engineering is fuzzy with loads of UML diagrams.  
> **username_7**: Also by Andrew Kennedy on that subject is this paper: http://research.microsoft.com/en-us/um/people/akenn/generics/designandimplementationofgenerics.pdf  

---

