Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Roshan James, Indiana University Homepage
[go: Go Back, main page]

Welcome to Roshan's homepage...

Roshan James
201H Lindley Hall
Department of Computer Science,
Indiana University, Bloomington
rpjames (at the domain) cs.indiana.edu













Interests: I am a grad student at Indiana University and am following my interests in programming languages. I am interested in the notion of programmability, in how to express ideas and in the nature of computation.
The object of my curiosity is best summed by the following Alan Kay quote:

The computer is a medium that can dynamically simulate the details of any other medium, including media that cannot exist physically. It is not a tool, although it can act like many tools. The computer is the first metamedium, and as such it has degrees of freedom for representation and expression never before encountered and as yet barely investigated. The protean nature of the computer is such that it can act like a machine or like a language to be shaped and exploited.

Profile: I graduated from Model Engg College, Cochin, India with a BTech in Computer Science and Engg. I spent some years in the computer industry; starting my formal career at Cognizant (CTS), I worked with CTS' 'Centre of Excellence' for .Net technologies. I worked for brief period with ThoughtWorks, the company popular for its extreme programming and agile methodologies. Prior to being at IU, I was a 'dev' (SDE) on the Windows Vista/Longhorn operating system group at Microsoft, IDC, Hyd. I have also worked informally with Vulcan and the CSE/BIT group at Microsoft and was once an MVP for C#.









Courses I am taking for Fall 2006:
- Theory of Computing, Daniel Leivant
- NonClassical Logics as Generalised Galois Logics, Michael Dunn and Katalin Bimbo
- Programming Language Semantics and Type Systems, Amr Sabry (as independant study Y790)

Research:
- Multicore computing - Working with Dr Dennis Gannon's Extreme Labs on Software Transactional Memory and Concurrency Calculi
- Call-By-Need Lambda Calculus - Working with Dr. Amr Sabry on an alternate formalisation of CBNeed (aka Lazy Evaluation).

Courses I am taking for Spring 2006:
- Advanced Programming Languages, Dan Friedman (621)
- Programming Language Type Systems, Amr Sabry (as independant study Y790)
- Specification and Verification, Steve Johnson (515)
- (auditing) Programming Language Implementation (Compilers), Amr Sabry (523)
- (auditing) Elements of Applied Logic, Daniel Leivant (510)

I am also a research associate working Prof. Amr Sabry on the following two ideas:
- Control Flow Mechanisms in Languages - More specifically we are trying to study the 'yield' operator in the context of Euggino Moggi and Amr Sabry's Monadic Metalanguage for Value Recursion. We are trying to study possible relations between yield, continuations and lazy evaluation.
- Quantum Computing - Studying how irreversible classical computation can expressed in terms of reversible quantum computation. This is related to work by Thorsten Altenkirch and Jonathan Grattage.


Fall 2005:
- Principles of Programming Languages, Dan Freidman (521)
- Quantum Computing, Amr Sabry (629)
- Operating Systems, Andrew Lumsdaine (536)
I was informally working with -
- Arun Chauhan (Parallel Compilers Group, Open Systems Lab) : Concurrency models (Pi and Join Calculus, Tuple-Spaces, CSP) with the objective of creating a concurrent 'substrate' for future parallelising compilers
- Amr Sabry (Programming Languages) : Control flow in programming languages
I was also associate instructor for the introductory level computer science course A110.



Links : Blog Old Homepage



Recent Work
Assortment of publications, articles or blog entries convering different of topics
Current Work
Parallel GC for the Glasgow Haskell Compiler (GHC)    more
Yield the Magnificent (with Simon Peyton Jones and Amr Sabry)
The Little Machines    more
Constructing Classical and Quantum Reversible Functions (with John Tuley and Amr Sabry)
Initial investigations into relating Logical and Computational calculi


Articles/Publications
Assortment of publications, articles or blog entries convering different of topics
Articles, Publications, Blog Entries
Thinking about the .Net Garbage Collector - aka make your own toy GC    more
Another Tale of Real World Debugging    more
A Modulo Based Bit Counting Approach For 64 Bit Systems    more
An introduction to WSH, WMI and System.Management (delivered at the Bangalore .Net User Group)    more
Enter the Data Definition Language: a developer perspective    more


Programming Languages - Control Flow and State Management Mechanisms
Discusses yield, closures, coroutines, iterators/generators/enumerators/streams, continuations etc
Programming Languages
Description of a complete 'yield' operator - Search for Yield the Magnificent    more
An implementation of Yield for Scheme    more
Closure implementation enhancement in CLR 2.0 using the new delegate mechanism    more
CLR 2.0 Closures and Environment classes that capture arity    more
Implementation of Closures (Anonymous Methods) in C# 2.0 (Part 6)    more
Implementation of Iterators in C# 2.0 (Part 5)    more
Iterators in the context of Windows' Fiber API(Part 4)    more
The 'Big Deal' about Iterators (Part 3)    more
Warming up to using Iterators (Part 2)    more
Iterators in Ruby (Part - 1)    more


DDL - Data Defintion Language
This is my undergrad project, an implmentation of a DDL that is useful for specifying and reading structured binary data. The language lets the user describe file formats and can then provide readers for files of that format, without the user writing file handling code. The implementation is packaged as a mixed-mode .Net library and can be hosted in any .Net language or via COM-interop.
Programming Languages
DDL Homepage
Enter the Data Definition Language: a developer perspective    more
Introduction to the DDL concepts
Language specification


Software
Some tools, proof-of-concept snippets and some other random material
Software
wmi.pl - A Perl command line tool for interfacing with Windows Management Instrumentation    more
Trashbin - the Portable Executable / Metadata viewer    more
WFML - WinForms Markup Language, A markup language for creating WinForms UI    more
MiniKanren Logic System for the CLR (written in Comega)
Netshortcut - a scriptable GUI command line
A 'Scheme' Compiler    more
Hexv - A simple command line hex viewer
CDScan - CD/DVD Cataloging App
Simple XML Pretty Printer
Img - A command line image manipulation utility
Enc - A command line file encryption utility
Strings.rb - A command line tool to help with C# code globalization
XView and ASPScan - scan large ASP projects and gather 'intellisense' information


Oldware
Some older work that is worth curiosity or nostalgia
Software
A linux based chatserver / message board    more
Prince of Persia 3
A GUI system and a simple OS
Random stuff




And what is good, Phaedrus,
And what is not good -
Need we ask any one to tell us these things ?




Generated on Mon Dec 18 15:42:49 Eastern Standard Time 2006