[clean-list] call for MSc research question

Jigang Sun Jigang.Sun at student.paisley.ac.uk
Sat Nov 25 00:57:43 MET 2006


I am making MSc project specification. I am thinking of the research 
question. Currently my supervisor and other reseach staff suggest it as 
"Is the .Net CLR /Common Type System/C# an effective platform for 
implementing functional languages?". 

I think implementing functional language on .Net is for portability 
purpose even if it is not efficient to support functional language. 
Just like popular machine(I think it is of Von Neumann architecture) is 
no good platform for functional language(I heard sombody ever suggested 
to make lambda calculus machine) but on which the lfunctional anguage 
has to be realised because of its popularity. The question whether .NET 
CLR/C#/Common Type System is an efficiency platform for functional 
language could lead to a good thinking of extension to .Net, ideally 
this question would be perfect if it is followed by the extension work. 
which probably Microsoft reseachers must have been on, because F# has 
been released. I could not do better than them or it is not practical 
for me to make an functional extension to .Net 2.0 or  .Net 3.0. 


I wonder if I could borrow an idea from F# to make an experimental 
extension to Clean so that inside Clean programmer can use common .Net 
library and a .Net language like C# also share Clean library as well. 


Please help me with Outline or Objectives of the specification below to 
reflect the light of research qestion. 


Thanks. 
Jigang 


My Course: Information Technology with Oracle stream 


Draft specification 


 Project Title: Subset of Clean implementation on .NET 


Research Question :         
Is the .Net CLR /Common Type System/C# an effective platform for 
implementing functional languages? 


Outline (Overview) : 
This project will investigate the theoretical and practical issues 
involved in implementing functional programming languages on the .Net 
platform, and, as part of the practical investigation, will provide an 
implementation of a subset of the (lazy, pure) functional language 
Clean.  A complete implementation of Clean's hybrid type system will 
not be attempted.  C# is chosen as working language. 


Objectives (The Project will) : 
. To further investigate the back end paradigm for functional languages 
and to understand the implementation issues that are distinct from 
imperative or object oriented languages; 
. To identify a suitable subset of Clean; 
. To choose methods for pattern matching, recursive function, graph 
reduction, type checking, strictness analysis; 
. Design test cases; 
. To develop a working compiler or interpreter for a subset of the 
Clean programming language. 


Relationship to Course (and Stream) : 
This project is certainly unusual for a conversion MSc in Information 
Technology. It is of intrinsic value and demonstrates how well I have 
adopted and mastered IT principles and software development. The topic 
is my interest. The project would have fitted better with former 
Software Development stream of PgDIT, on which I originally planned to 
enrol. The Oracle stream is currently the best fit. 


Resources (including Reading List) : 
http://www.cs.ru.nl/~clean/  The language report, basic methods behind 
current Clean IDE, historical achievements, etc. 


Modern Compiler Implementation in Java, 2nd Edition, Andrew W. Appel, 
Princeton University, New Jersey 


Publications and proceedings of the Association  for Computing 
Machinery Special Interest Group on Programming Languages (SIGPLAN) 


http://www.cse.iitb.ac.in/~as/fpcourse/fpcourse.html 


Marking Scheme : 
Introduction 5% 
Literature Review   20% 
Design 25% 
Implementation  25% 
Testing  10% 
Discussion (future work etc) 5% 
Critical evaluation 10% 








More information about the clean-list mailing list