Comments (4)
I think in part because English prose is always the way it's been done, so formalizing around that seems less disruptive than inventing a syntax. But English prose also tends to be more readable and leaves more room for being creative in case you need to do something novel. Furthermore, if we had a syntax such as used in that paper, we'd then have to standardize that syntax fully and be constrained by it. Typically what I find is that such pseudocode is not actually defined in detail and therefore more ambiguous than English.
The reason why we don't go for performance is because that is really complicated. E.g., consider the JavaScript standard. If they had to concern themselves with performance they'd have to define JITs, a dozen string types, etc. For CSS you might end up having to define multiple selector matching engines and fiddle with them over time as the characteristics of the web change. It's much easier to describe input -> output and leave the bits between to be optimized as implementations see fit. That also allows completely novel implementation approaches such as Servo.
from infra.
@annevk, I think the last paragraph there could be morphed into a useful non-normative note in the spec. Less sure about the first one.
from infra.
@LeonidVasilyev are you okay with closing this? The standard now includes a note on performance. I'm not quite sure what to say about pseudocode other than using it meaning we'd have to define how that works (and how you extend it), etc.
from infra.
@annevk yes, thank you.
from infra.
Related Issues (20)
- What happens when an implementation-defined limit is reached?
- Clarify termination scope HOT 4
- Clarify USV handling in "serialize a JavaScript value to JSON bytes" HOT 1
- Consider defining "failure" HOT 2
- Expand on list indexing syntax
- Conditional abort edge case HOT 2
- Forgiving base64 HOT 8
- "do while" loops HOT 5
- Iteration and append methods for byte sequence used in standards are undefined HOT 1
- Skipping an item while iterating is undefined HOT 1
- Define monkeypatching HOT 3
- Consider defining "unique internal value"
- Explicit unions HOT 1
- definitions of "Continue" and "Break" should be clear that they apply to the innermost loop
- Define ordering for sets and maps? HOT 4
- Define remainder (and/or modulo) HOT 2
- Peek operation for stacks
- "Parse JSON to Infra" algorithms shouldn't require a current JS realm HOT 4
- Define set difference
- Give some examples of how to use structs
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from infra.