Theoretical Computer Science StackExchange Beta now open

For those who aren't familiar with Stack Exchange, it's essentially set of specialized Q&A sites built on the model and software of Stack Overflow, which LtU folks are hopefully already familiar with.

The Theoretical Computer Science site is now in public beta. Thus far, the overwhelming emphasis is on complexity theory. However, it also aims to be (and should prove to be) a good home for discussions on all PLT-related topics (types, logic, semantics, implementation issues, etc.). It should be a particularly good place to redirect questions to that are off-topic for LtU (especially design discussions and "how to" questions).

The Stack Exchange FAQ explains the following about the Beta phase: "This is the actual, live site set up on a 'probationary' basis to see if people will use it. It is very important to participate early. The earliest questions will set the tone and topic of the site for a long time. This is also the time to spread the word via Twitter, blogs, and email far and wide. If the site does not get used, it will be deleted."

Perhaps an editor could post this announcement to the front page as well?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Go team! Very nice. I hope

Go team! Very nice. I hope there's at least some minimal moderation to keep the questions at least roughly on topic.



StackOverflow based sites are effectively community moderated through a reputation scheme. Once you get enough reputation, acquired essentially by having people liking your questions and answers, you gain progressively higher powers of moderation. For instance, right now I've got a high enough reputation on StackOverflow to edit and tag other folks questions, but not enough to be able to vote for questions to be closed or removed.

Surprisingly enough, it all works very well.

Is it time for a programming

Is it time to propose a programming language theory/design/implementation section on stack exchange?

Edit: I don't want to see PL pigeon holed with theory, I think it stands on its own and much of PL is not very theoretical.

Compiler Design

There is a proposed StackExchange Q&A site for those wanting to discuss language design or create a compiler/interpreter using existing tools or from scratch.

Nice Find. Would prefer the

Nice Find. Would prefer the title to be "PL" rather than "compiler." After all, we don't learn about PL in compiler class.

It's unfortunate that this

It's unfortunate that this site has already passed the definition phase. I agree that it would have been better to be called something like "Programming language design and implementation".

You can see from the comments that people are confused about whether language design questions are allowed. Too late to cry over spilt milk?

Diluting the conversation

I'd rather the conversation stays in one place (i.e. LtU) than have another site to keep tabs on.

Re: Diluting the conversation

I think it's useful to have a Q&A site for questions that fall outside of LtU's policies. It keeps the discussions here "blog"-like rather than "forum"-like. However, I don't think adding PL specific Q&A is a good idea. PL people are already quite likely to visit both the CS Theory site and the Compiler Design site. Adding a third seems like too much.

PL is either theory or

PL is either theory or compiler design?

It's a question of numbers...

Maybe I'm just naive, but I'd say that theory + compiler design covers about 90% of the practical questions I'd want to ask. That last 10% probably doesn't fit nicely into a Q&A site anyway. It's just my opinion though, maybe others feel differently.


Garbage collection, dynamic code loading/linking, dynamic dispatch, speculative runtime optimization/de-optimization, logical unification, runtime bounds checking, etc. Certainly there's a bunch of theory behind all that stuff but there's also a lot of sweat and tears engineering in it (especially around making it fast or memory efficient or whatever) and very little of it looks like what is traditionally meant by "compiler."

You'll find discussion of

You'll find discussion of all that and more in past postings on the comp.compilers moderated newsgroup. I personally wouldn't describe those as irrelevant under the heading of "compiler".

Maybe, but it's really a

Maybe, but it's really a problem with our field; we pay little attention to design and human factors at all, which is why languages are often merely copies of each other, warts and all. We need more balanced discussion that places design at an equal prominence with theory and implementation (the 'D' in PLDI...).

Every field in computer science has a theoretical component! A Q&A board on theoretical computer science is too broad to be useful, and I'm sure they meant theory of computation, which is its own field distinct from PL, OS, graphics, and whatever. I disagree with the original poster's suggestion that this would be a good place to talk about PL-specific theory (e.g., type theory) and not say the theory behind bezier curves (graphics).

See the meta discussion on

See the meta discussion on scope here. I'd tend to think that practical work that relates to theoretical topics (i.e. a fair amount of higher-level [i.e. researchy rather than basic] design and implementation discussion) would fit right in. I.e. "Why do I need garbage collection" would not, but "What are the trade-offs and open questions involving the X garbage collection system" or "I'm trying to implement the garbage collection system proposed in paper X, and I don't understand the description on page 3" would.

PL Engineering (as opposed to theory)

Is there an appropriate forum for questions that are related to the engineering side of PLT. I am a programming language neophyte and a LTU lurker. I find discussions at LTU extremely educational. But I guess that questions that relate to implementation of a certain feature in a language, or listing out languages that implement a particular (but non-novel) feature etc are not welcome at LTU.

To give a specific example: are there languages that implement parallel message passing through closed over variables. To elaborate I am thinking of a collection of closures closed over a collection of variables. Is there a benefit if only one function has
write access to any of these variables while the rest have read access. Does it make sense to have a parallellized reduce using such functions....

I am not sure if such newbie'ish questions are appropriate here. So would really appreciate pointers to a place with a high signal to noise ratio where I can take such questions to ? Most fora that I know of are specific to a particular language and language practice, say c++, python, and then there is LTU. I think there are many questions that falls in the gap. It would be great to have a newbie mentoring corner here at LTU.

Wikis, forums, etc.

The Mono wiki, especially for the Compiler, has a fair amount of information. Mono is a fairly well documented project, so at the level of a virtual machine you can get quite a bit of detail.

Other ways you can inhale this information is through very specific mailing lists, like the MIT PEG mailing list for parsing expression grammars, which has very low activity but some good discussion with links to what resources to look at.

I don't generally love having to search down good places for discussion, but that is how it is. Software Engineering Knowledge is passed around through a system of chinese whispers. (I think Joel Spolsky or somebody else at MSFT once commented about this, how big of an advantage a 20,000 company can have when it comes to sharing obscure micro-optimizations, etc. and how over time they trickle out to the public pool of knowledge, but generally aren't collected well.)

I can only advise you set-up a separate gmail account for all your mailing lists. Google does a phenomenal job handling support for users who love mailing lists. The threaded discussions make life much easier. Also, filters let me put some mailing lists into "never look at" sections. You could also get this same level of functionality with mutt of course.

Thanks for the pointers. I

Thanks for the pointers. I dont mind searching as much, as long as the list is spam free, the newsgroups are practically un-browsable because of spam. Regarding knowledge transfer, I think in colleges we read far too little of other people's code than we should. Liberal arts I think does a better job of disseminating and retaining the "tricks of the trade" through mandatory reading and critique. Thanks to open source now one at least has access to lots of good code (sans critique though). I dont want to drag the conversation off LTU limits, so thanks again for the pointing to the resources.

Missing the point of StackExchange, a bit

I understand the desires many of you seem to have, but the mechanics of StackExchange based sites don't really fit them. By design, the reputation systems of StackExchange systems are _strongly_ biased toward discrete questions with discrete answers, ideally expressed in code or equations. That makes them great for moving intermediate students toward becoming advanced students. Intermediate students are good at asking discrete questions, advanced students good at answering them. Open-ended questions with open-ended answers, the sorts that interest researchers, quickly get voted down on StackExchange sites. (Conversely, introductory questions never get much interest, and are often derided as "hand-holding".) Before going off too quickly on this tangent, I strongly recommend spending some time on StackOverflow, MathOverflow, or this new theoretical CS site. They have great roles to play, but aren't going to replace sites like LtU anytime soon.

The mechanism and community

The mechanism and community are separate issues. Community decides what questions are on and off topic, while the underlying infrastructure makes the community more efficient. A SO-like Q&A site for programming language theory, design, and implementation would be worthwhile, though its community would definitely be niche, as always.

CompilerDesign StackExchange community...

well, so far Miguel de Icaza has committed interest to the CompilerDesign StackExchange. And, yes, compiler design was a terrible name. Hopefully Joel and Jeff pick a better name for it.

I am a bit disappointed no one posted the practical joke gag question during the sample questions period: "Based on my experience developing Visual Basic for Applications, should I implement a custom language for building web applications, that can be compiled to PHP and ASP.NET?" (Joel Spolsky reference).

Reference-centred discussion

They have great roles to play, but aren't going to replace sites like LtU anytime soon.

Definitely not. The reference-centred discussion here at LtU is a very effective basis for the kind of sustained exploration we are about here.