[ The Types Forum, http://lists.seas.upenn.edu/mailman/listinfo/types-list ]

Dear TYPEers, 




The progress of OOP languages such as Java, C#, Scala, and C++ has been 
hindered by the complexity of their type systems. 




Features of generics in OOP languages such as: 




(1) variance annotations (of which Java wildcards are an instance), 




(2) (Java) erasure, where type arguments of a parameterized type get 
dropped/ignored, and 




(3) F-bounded polymorphism/generics, where a type variable occurs in its own 
bound, such as in the Java class declaration 


class Enum<T extends Enum<T>>{}, 




are particularly notable for their contribution to the complexity of OO type 
systems (as a check of the latest versions of language specifications - or of 
the Java generics FAQ - reveals, these three particular features make the 
specification of type systems of these languages overly unwieldy and complex). 
This complexity makes the full understanding of the type systems of these 
mainstream OO languages amenable only to the most advanced of OO software 
developers. 




Building on the simplicity and intuitiveness of graph theory, order theory, and 
*basic* category theory, in recent work I've tried to build a simple model of 
generics in nominally-typed OOP languages (such as the ones mentioned above) 
using an approach that is mainly and mostly order-theoretic in its essence and 
nature. 




I presented the details of this approach in multiple research articles that I 
posted to arXiv. To summarize the approach though,  recently I presented an 
abridged outline of the whole approach (as developed so far) in an article 
available at: 




http://arxiv.org/abs/1906.11197 




I am posting about this outline article to the TYPES mailing list because, 
first, I'd like to thank all those (mathematicians, PL researchers, language 
designers, and OO software developers) who gave me their precious feedback on 
the approach while its development was in its infancy.  That includes thanking 
in particular David Spivak, Robert Cartwright, John Greiner, Daniel Smith, 
Larry Paulson, Nathan Carter, and Kariem ElKoush, as well as plenty of the 
anonymous reviewers of conferences and workshops I submitted some of my work 
to.  Any shortcomings or errors found in the approach as developed so far or in 
its presentation should be blamed on me and no one else. 




And, since the approach has matured a bit, I am now seeking further feedback on 
the approach from the wider community. 




Next, given the limited financial and human resources available to me, I am 
also seeking collaborations with interested and qualified members of the 
community, which can help in speeding up the development of the approach and in 
finalizing it sooner. 




Finally, if you happen to read the outline paper then please make sure that 
(even if you can provide me with no material support) you do not keep your 
opinions about the approach to yourself.  All kinds of feedback on the approach 
--- including constructive, well-justified and respectful criticism --- are 
more than welcome. 




Cheers, 


-Moez 




PS: Pending finding funding for my trip, I plan to be in Oxford in mid July to 
attend ACT 2019 and to present a poster there on this work, under the title 
'Modeling OO Generics: An Order- and Category-Theoretic Approach'.  Assuming I 
make it to Oxford, those attending ACT 2019 and interested in a chat should 
feel free to drop by. 


Reply via email to