12

Proposal: Programming Language Design and Implementation

I've chatted with a few of the users behind this proposal in chat (and internally with other members of the Community Management Team), and while this proposal does seem to have some areas of overlap with existing sites on the SE network, it also appears to be worthy of a space of its own.

That being said, I didn't see these areas of overlap or lack thereof being mentioned in any other discussions around this proposal.

These are better discussed, even if on a high level, before the site launches into a private beta. Naturally, they can be slightly adjusted later as the site grows and evolves, but at this stage it's important to explicitly highlight where the gap is with the current sites available, potentially even listing types of questions that are currently being closed as off-topic on other sites but would be allowed here. Doing so now would assist in having a better definition of the scope of this site, as well as making a case for its necessity.

As such, I wanted to invite the folks behind the proposal to highlight:

  • which existing sites would have some level of overlap with this one, and
  • which topics wouldn't fit on any existing sites.

3 Answers 3

11

This definitely isn't the full picture, but here's the list from which computer science / programming Stack Exchange sites do I post on? annotated with how they might overlap with our site (sites with basically no overlap are excluded to save space):

  • Stack Overflow: SO mostly handles specific questions about debugging nowadays. Thus, it'll have relatively little overlap with our site's questions about language design, and most of our questions regarding implementation will be too general for SO. However, we've brought up the idea of allowing questions about debugging or optimizing specific code in interpreters/compilers (especially when language parsing/compilation frameworks are being used), similar to how Game Development allows code-specific questions about game development (particularly with libraries like Unity)
  • Software Engineering: This site mainly has to do best practices in or surrounding code. While this is similar to many of the questions we'll get on PLDI, where we're looking at best practices from the other lens (how to allow them to be implemented in our languages), questions about language design and especially implementation are not on-topic on SE. Software Engineering does have a tag, but these questions mainly ask about why existing languages make certain design decisions. This is one area where our scope will overlap, since our current consensus is to allow these questions.
  • Information Security: While there are some questions about the design of programming languages (and especially very low level ones, like machine code) from an information security perspective, this shouldn't meaningfully overlap with our site's scope
  • Code Review: While CR takes questions about code readability and optimization, which will be topics our site will cover, CR focuses more on specific programs in existing languages, rather than designing languages in order to facilitate these goals. It has a tag, a few questions from which would be close to on-topic on PLDI, but which mainly deal with specific implementation details from a code quality lens.
  • Computer Science: CS possibly has the most overlap with our site. It accepts questions about the more theoretical side of language design, such as computational complexity, or algorithms which could be used for optimizing code. It does seem to have some more generic questions about language design, and a tag, but these questions receive little attention and are of questionable on-topic-ness
  • Theoretical Computer Science: As CS's big brother, TCS might accept some questions relating to the theoretical side of language design, but those would likely be far enough removed from typical programming languages that they'd receive little attention on PLDI

While some of these sites seem to have accepted questions in the past which would be pretty typical on PLDI, they are a tiny minority on all of these sites, and typically go mostly unnoticed. Question types possibly on-topic on PLDI that would be likely to be on-topic on other sites include:

  • Debugging specific code from implementations of programming languages (SO)
  • Improving the readability or performance of implementations of programming languages (CR) (note: "performance" in this case refers to the interpreter/compiler itself, rather than optimizing the code it runs, which is a much different topic)
  • Objective questions about design choices in existing languages (SE)
  • Questions about the impacts of language design choices on information security, especially at a low level (Infosec)
  • Questions about computational complexity, algorithms used for things like compiler optimization, or other theoretical aspects of language design or implementation (CS)

Things which would still be on-topic on only PLDI (could) include:

  • Questions about best practices in the design of languages' syntax, implementation, or major design choices (such as paradigm or type system)
  • Questions about general strategies for optimizing languages
  • Questions about ways to implement particular language features

This is basically the exact same as the scope we initially set out to cover.

1
2

Design

The subject matter overlaps with Software Engineering and Code Review, insofar as design is motivated by the same concerns, but I don't think any design questions could actually be posted on either site.

Some design questions also concern, at least in part, design choices made in existing languages. Some questions like these have found themselves at home on Retrocomputing as a matter of historical interest. The design of existing languages can also come up as context in questions and answers on Stack Overflow, but is rarely suited to being the topic itself.

Implementation

As concerns using existing technologies for implementation, the implementation side of PLD is no different from Game Development or Proof Assistants in that the questions are of the sort that would fit on Stack Overflow without a specialized community to fit them better.

However, the broader-strokes stack-agnostic implementation questions, concerning how something is possible (or practical) at all, are uniquely PLD.

1

Implementation

I'll just focus on on overlap for this one. The implementation side of languages has a somewhat overlap with Stack Overflow and Code Review. Questions such as improving your GC could be suited on all three sites. Optimization and code quality would be for CR, but stuff such as implementing parsers or creating a borrow checker would be uniquely here.

1
  • 4
    I think it's important to draw a distinction between the compiler/interpreter's code and the code it compiles/interprets. PLDI is mainly concerned with the latter, while SO and CR would mainly care about the former Commented Feb 13, 2023 at 23:54

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .