H
HN HRCB new | past | comments | ask | show | jobs | articles | domains | dashboard | seldon | network | factions | velocity | about hrcb
home / en.wikipedia.org / item 47110491
+0.42 PL/0 (en.wikipedia.org)
60 points by tosh 3 days ago | 17 comments on HN | Moderate positive Editorial · v3.7 · 2026-02-26
Summary Education & Knowledge Access Champions
This Wikipedia article on PL/0, a programming language, exemplifies the platform's fundamental commitment to universal access to knowledge and education. The article itself, freely accessible globally in multiple languages, directly supports Article 19 (free expression), Article 26 (right to education), and Article 27 (participation in scientific progress). The underlying structural characteristics of Wikipedia—open editing, transparent governance, community participation, and comprehensive attribution—consistently align with UDHR principles across civic, social, and cultural domains.
Article Heatmap
Preamble: +0.37 — Preamble P Article 1: +0.29 — Freedom, Equality, Brotherhood 1 Article 2: +0.24 — Non-Discrimination 2 Article 3: +0.40 — Life, Liberty, Security 3 Article 4: ND — No Slavery Article 4: No Data — No Slavery 4 Article 5: +0.40 — No Torture 5 Article 6: +0.22 — Legal Personhood 6 Article 7: +0.32 — Equality Before Law 7 Article 8: +0.27 — Right to Remedy 8 Article 9: ND — No Arbitrary Detention Article 9: No Data — No Arbitrary Detention 9 Article 10: +0.29 — Fair Hearing 10 Article 11: ND — Presumption of Innocence Article 11: No Data — Presumption of Innocence 11 Article 12: +0.44 — Privacy 12 Article 13: +0.32 — Freedom of Movement 13 Article 14: +0.20 — Asylum 14 Article 15: +0.23 — Nationality 15 Article 16: ND — Marriage & Family Article 16: No Data — Marriage & Family 16 Article 17: +0.32 — Property 17 Article 18: +0.37 — Freedom of Thought 18 Article 19: +0.87 — Freedom of Expression 19 Article 20: +0.62 — Assembly & Association 20 Article 21: +0.34 — Political Participation 21 Article 22: +0.27 — Social Security 22 Article 23: +0.22 — Work & Equal Pay 23 Article 24: +0.22 — Rest & Leisure 24 Article 25: +0.49 — Standard of Living 25 Article 26: +0.79 — Education 26 Article 27: +0.72 — Cultural Participation 27 Article 28: +0.37 — Social & International Order 28 Article 29: +0.32 — Duties to Community 29 Article 30: +0.22 — No Destruction of Rights 30
Negative Neutral Positive No Data
Aggregates
Weighted Mean +0.42 Unweighted Mean +0.38
Max +0.87 Article 19 Min +0.20 Article 14
Signal 27 No Data 4
Confidence 45% Volatility 0.17 (Medium)
Negative 0 Channels E: 0.6 S: 0.4
SETL -0.14 Structural-dominant
FW Ratio 62% 80 facts · 49 inferences
Evidence: High: 3 Medium: 15 Low: 9 No Data: 4
Theme Radar
Foundation Security Legal Privacy & Movement Personal Expression Economic & Social Cultural Order & Duties Foundation: 0.30 (3 articles) Security: 0.40 (2 articles) Legal: 0.28 (4 articles) Privacy & Movement: 0.30 (4 articles) Personal: 0.34 (2 articles) Expression: 0.61 (3 articles) Economic & Social: 0.30 (4 articles) Cultural: 0.76 (2 articles) Order & Duties: 0.30 (3 articles)
HN Discussion 7 top-level · 10 replies
verbatim 2026-02-25 17:04 UTC link
Interesting. The article states "The compiler prints the value as a given variable changes." -- surely it means the program does, and not the compiler?
js8 2026-02-25 17:15 UTC link
Any relation to PL/I?
ginko 2026-02-25 17:41 UTC link
Why were forward slashes so popular in computing product names in the 70s and 80s?

PL/0, PS/2, CP/M, etc.

weinzierl 2026-02-25 18:02 UTC link
"The publisher of Wirth's books (Addison-Wesley) has decided to phase out all his books, but Wirth has published revised editions of his book beginning in 2004."

That is sad, but the revised editions seem to be published online.

cmrdporcupine 2026-02-25 20:22 UTC link
The older I get the more I prefer Wirth syntax languages with keyworded blocks and := assignment operators, and regret how C block syntax and =/== took over.

I learned first on Pascal & Modula-2 and only picked up C later and while I appreciated its terse minimalism at the time and through the 90s, I actually don't at all now. I find it less readable.

dtoffe 2026-02-25 20:29 UTC link
To all interested in this little treasure, I transcribed the source code of the PL/0 compiler from the book "Algorithms + Data Structures = Programs", published by Nicklaus Wirth in 1976, and adapted it to run in Free Pascal.

You can find the sources here: https://github.com/dtoffe/adsp-pl0

Some interesting notes:

- The original compiler does not define nor implements "read" or "write" statements, as was the norm in later PL/0 implementations. - The source code in the book corresponds to the implementation in the CDC 6000 that Wirth had at hand back then. That machine used the CDC Display Code:

https://en.wikipedia.org/wiki/CDC_display_code

a 6 bit character code from before the ASCII times. Among its 64 characters, it includes single symbols for "<>", "<=" and ">=". In an attempt to change the code the least to make it run as original as possible, I changed those three character to #, { and }, as the symbols in the lexer are implemented using an array of char (only the assignment is treated as a special case).

- The interpreter printing out the values of every variable assignment, noted by another reader of this post, was a way of getting some information of the running program, since the compiler does not implement read or write statements.

- Following the compiler code, full of single letter variable names, was not the most exciting part.

GeorgeTirebiter 2026-02-25 20:36 UTC link
I have always disliked the := as assignment operator convention. In these declarative languages, assignment is done frequently. There is little cognitive load to using '=' as assignment, although perhaps a bit jarring for math folk.

<- is somewhat better, but, again, for such a common operation, a single character is just more convenient. Sure, we could have editors that turn "=" into := or <- but now we're getting too fancy especially for something pedagogical.

I also don't mind the -> for C pointers; and certainly don't mind the <= >= or even == conventions (although at least today's compilers warn when they see "if (a=b) ...".

Ultimately, humans won't be writing code anymore anyway ( ;-) ?) so maybe the issue is entirely moot.

monocasa 2026-02-25 17:20 UTC link
I take it to mean that the compiler inserts variable print code on variable modifications.
azhenley 2026-02-25 18:28 UTC link
It was a convention to denote a variation or version. Not sure how the trend started though.
theanonymousone 2026-02-25 18:30 UTC link
Maybe referencing the reputation of IBM System/360?
spogbiper 2026-02-25 18:55 UTC link
I think it started with IBM: System/360 and /370, PS/2, OS/2, PL/I

And then Gary Kildall also seemed to like it with CP/M and PL/M, but those were after IBM had used it and I'd guess Gary was just copying IBM.

Between just those two influences you cover a huge portion of the mainframe and micro computer worlds during the 60s-80s

compiler-guy 2026-02-25 19:36 UTC link
It might be more precisely stated something like "The language's semantics require that when a variable changes value, that change includes the side-effect of printing the new value."
dtoffe 2026-02-25 20:10 UTC link
The compiler produces p-code to be interpreted by an interpreter, so it is the interpreter that prints the value.
Joker_vD 2026-02-25 21:13 UTC link
> I have always disliked the := as assignment operator convention. In these declarative languages, assignment is done frequently.

> I also don't mind the -> for C pointers

Mmm. These two opinions should be contradictory if held on principle as opposed being held out of impression.

    it = next(it);
    if ((*it)->node->op == EQ) ...
vs.

    it := next(it);
    if it.node.op = EQ ...
Eh. I don't really mind either of those except for the stupid parens after the "if" in the first case.

Technically, if you don't make assignment an expression, you can even get away with using "=" for both. And "->" exists only because structs originally weren't really typechecked; you could take any pointer and just do "->struct_field" at it, and the compiler would auto-cast.

nemetroid 2026-02-25 21:51 UTC link
Using '=' for both assignment and comparison is awkward when parsing incomplete code. Consider e.g.:

  j = 5;
The user starts writing (<|> is the cursor position):

  i = <|>
  j = 5;
This is a valid expression (i is a boolean). But the user probably intends to finish writing something like:

  i = 0;
  j = 5;
So in the intermediate state we would like to emit a single warning about an incomplete statement. But since it is valid as written, we instead end up warning about e.g. j being unbound.
csb6 2026-02-25 23:36 UTC link
The := vs = debate is a prime example of bikeshedding for programmers. Probably hundreds of thousands of words have been written about it in various online forums. Everyone has an opinion but the truth is that it doesn't matter that much. You learn to use a new Algol-family language, you learn how it does assignment, you move on.
csb6 2026-02-25 23:43 UTC link
I think the name was likely a tongue-in-cheek reference to PL/I being notoriously complex to implement a compiler for. Wirth designed a language for teaching that had an extremely small set of features (making its complexity much closer to "0" than "1"). It is basically a small subset of Pascal.
Editorial Channel
What the content says
+0.55
Article 19 Freedom of Expression
High A:free_expression A:information_access P:open_publishing
Editorial
+0.55
SETL
-0.17

Article exemplifies free expression through collaborative authorship; neutral content freely presents information to readers; no censorship of technical knowledge

+0.45
Article 26 Education
High A:education_access A:knowledge_sharing P:universal_access
Editorial
+0.45
SETL
-0.23

Article exemplifies education goal by providing free technical knowledge; content authored with educational purpose; enables learning without barriers

+0.40
Article 27 Cultural Participation
High A:cultural_participation A:scientific_progress P:knowledge_sharing
Editorial
+0.40
SETL
-0.15

Article documents scientific/technical achievement (PL/0 programming language); shares knowledge of human cultural and scientific progress; enables participation in scientific community

+0.35
Preamble Preamble
Medium F:dignity_recognition F:international_cooperation
Editorial
+0.35
SETL
-0.14

Article discusses technical history and context of PL/0 programming language with balanced factual presentation; implicit recognition of human intellectual achievement and knowledge sharing

+0.35
Article 18 Freedom of Thought
Medium F:thought_freedom F:conscience_protection
Editorial
+0.35
SETL
-0.14

Article presents technical information neutrally without imposing ideology; readers free to accept or reject ideas presented

+0.35
Article 28 Social & International Order
Medium F:social_order P:community_governance
Editorial
+0.35
SETL
-0.14

Article content emerges from community-established editorial standards; reflects social order enabling peaceful knowledge sharing

+0.30
Article 7 Equality Before Law
Medium F:equal_protection P:community_governance
Editorial
+0.30
SETL
-0.13

Article presents neutral information equally to all readers; no differentiation in treatment of information based on user characteristics

+0.30
Article 13 Freedom of Movement
Medium F:free_movement P:access
Editorial
+0.30
SETL
-0.13

Article is freely accessible from any geographic location; no restrictions based on nationality or residence

+0.30
Article 17 Property
Medium F:intellectual_property P:attribution
Editorial
+0.30
SETL
-0.13

Article provides explicit recognition of creator's intellectual property through attribution; acknowledges authorship rights

+0.30
Article 20 Assembly & Association
Medium F:peaceful_assembly F:association
Editorial
+0.30
SETL
-0.13

Article emerges from peaceful collaborative community; editors voluntarily associate for knowledge creation without coercion

+0.30
Article 21 Political Participation
Medium F:participation F:democracy
Editorial
+0.30
SETL
-0.20

Article creation involves democratic input from community editors; no single authority dictates content; ideas evaluated on merit

+0.30
Article 29 Duties to Community
Medium F:community_duties P:responsibility
Editorial
+0.30
SETL
-0.13

Article demonstrates community responsibility through verifiable sourcing and neutral presentation; authors exercise duty to accuracy and fairness

+0.25
Article 1 Freedom, Equality, Brotherhood
Medium F:equal_dignity
Editorial
+0.25
SETL
-0.19

Article content treats all contributors and readers equally regardless of background; neutral presentation without discrimination

+0.25
Article 8 Right to Remedy
Medium F:recognition P:attribution
Editorial
+0.25
SETL
-0.12

Article provides explicit recognition and naming of the creator (Niklaus Wirth) and contributions; acknowledges intellectual property through attribution

+0.25
Article 10 Fair Hearing
Medium F:fair_process P:transparency
Editorial
+0.25
SETL
-0.19

Article content undergoes transparent editorial process with verifiability requirements; sources documented; dispute resolution available for content disagreements

+0.25
Article 15 Nationality
Low F:national_identity
Editorial
+0.25
SETL
+0.11

Article does not address nationality; neutral technical content without national bias

+0.25
Article 22 Social Security
Low F:social_security
Editorial
+0.25
SETL
-0.12

Article provides educational content supporting self-realization through learning about programming languages

+0.25
Article 25 Standard of Living
Medium F:healthcare_access F:education_access
Editorial
+0.25
SETL
-0.19

Article supports education on programming language; contributes to knowledge necessary for developing technological solutions to human welfare

+0.20
Article 2 Non-Discrimination
Low F:non_discrimination
Editorial
+0.20
SETL
-0.17

Article discusses technical subject matter without discriminatory framing; no evidence of stereotyping or exclusionary language

+0.20
Article 6 Legal Personhood
Low F:human_agency
Editorial
+0.20
SETL
-0.11

Article recognizes humans as creators of technology; implicit recognition of personhood in crediting inventor and contributors

+0.20
Article 12 Privacy
Medium P:privacy_protection
Editorial
+0.20
SETL
-0.17

Article content does not expose private information; neutral presentation respects privacy of individuals mentioned

+0.20
Article 23 Work & Equal Pay
Low F:work_rights
Editorial
+0.20
SETL
-0.11

Article documents historical programming language relevant to computing work; neutral treatment of subject

+0.20
Article 24 Rest & Leisure
Low F:rest_leisure
Editorial
+0.20
SETL
-0.11

Article does not address rest or leisure rights.

+0.20
Article 30 No Destruction of Rights
Low F:prevention_of_abuse
Editorial
+0.20
SETL
-0.11

Article content does not advocate destruction of UDHR rights; neutral technical presentation poses no abuse risk

ND
Article 3 Life, Liberty, Security
Medium P:user_security

Wikipedia supports anonymous editing and reading; users can access content without providing personal data; privacy protections enable safe participation

ND
Article 4 No Slavery

Article on programming language topic does not engage with slavery or servitude.

ND
Article 5 No Torture
Low P:user_protection

Wikipedia community policies prohibit harassment and abuse; content moderation systems and community enforcement reduce torture/cruel treatment risks

ND
Article 9 No Arbitrary Detention

Article on programming language does not engage with arbitrary arrest or detention.

ND
Article 11 Presumption of Innocence

Article on technical topic does not address criminal liability or presumption of innocence.

ND
Article 14 Asylum
Low F:asylum_support

Wikipedia as open platform provides refuge for persecuted voices through anonymous publication and protection from surveillance

ND
Article 16 Marriage & Family

Article on technical topic does not engage with marriage or family.

Structural Channel
What the site does
Domain Context Profile
Element Modifier Affects Note
Privacy +0.15
Article 3 Article 5 Article 12
Wikipedia maintains standard privacy practices for users; anonymous editing supported; transparent data handling
Terms of Service +0.10
Article 19 Article 20
Terms of service permit free expression and community editing; minimal content restrictions align with UDHR
Accessibility +0.12
Article 26 Article 27
Wikipedia provides multiple language versions, accessibility features, and free universal access to knowledge
Mission +0.18
Article 19 Article 26 Article 27
Wikipedia's mission of free knowledge dissemination directly supports freedom of information and education
Editorial Code +0.08
Article 19 Article 20
Neutral point of view policy supports balanced presentation; verifiability and source requirements promote truth-seeking
Ownership +0.12
Article 19 Article 20 Article 26
Wikimedia Foundation operates as nonprofit; community governance model supports participatory rights
Access Model +0.20
Article 19 Article 25 Article 26
Free, open-access educational content available globally supports right to information and education without barriers
Ad/Tracking +0.05
Article 12
Limited advertising; primarily donation-supported; minimal tracking compared to commercial platforms
+0.60
Article 19 Freedom of Expression
High A:free_expression A:information_access P:open_publishing
Structural
+0.60
Context Modifier
+0.30
SETL
-0.17

Wikipedia fundamentally enables free expression through open editing, community publishing, and minimal content restrictions; readers have unrestricted access to information

+0.55
Article 26 Education
High A:education_access A:knowledge_sharing P:universal_access
Structural
+0.55
Context Modifier
+0.30
SETL
-0.23

Wikipedia's core mission is free universal access to educational knowledge; multiple languages, accessibility features, no paywalls or barriers

+0.45
Article 27 Cultural Participation
High A:cultural_participation A:scientific_progress P:knowledge_sharing
Structural
+0.45
Context Modifier
+0.30
SETL
-0.15

Wikipedia enables participation in scientific knowledge production and dissemination; protects open access to scientific achievements; supports technological culture globally

+0.40
Preamble Preamble
Medium F:dignity_recognition F:international_cooperation
Structural
+0.40
Context Modifier
0.00
SETL
-0.14

Page structure enables free, global access to educational information about programming language history; supports knowledge dissemination without barriers

+0.40
Article 18 Freedom of Thought
Medium F:thought_freedom F:conscience_protection
Structural
+0.40
Context Modifier
0.00
SETL
-0.14

Wikipedia's NPOV policy protects freedom of thought by presenting multiple perspectives; no forced ideological conformity

+0.40
Article 21 Political Participation
Medium F:participation F:democracy
Structural
+0.40
Context Modifier
0.00
SETL
-0.20

Wikipedia's governance enables democratic participation through voting, consensus-building, and community decision-making; equal voice to all registered users

+0.40
Article 28 Social & International Order
Medium F:social_order P:community_governance
Structural
+0.40
Context Modifier
0.00
SETL
-0.14

Wikipedia establishes social and international order supporting human rights through NPOV policy, verifiability standards, and community governance protecting knowledge access

+0.35
Article 1 Freedom, Equality, Brotherhood
Medium F:equal_dignity
Structural
+0.35
Context Modifier
0.00
SETL
-0.19

Wikipedia's community model permits anyone to edit and contribute; no discriminatory barriers to participation based on identity

+0.35
Article 7 Equality Before Law
Medium F:equal_protection P:community_governance
Structural
+0.35
Context Modifier
0.00
SETL
-0.13

Wikipedia's policies establish equal application of rules to all editors; dispute resolution processes available to all users

+0.35
Article 10 Fair Hearing
Medium F:fair_process P:transparency
Structural
+0.35
Context Modifier
0.00
SETL
-0.19

Wikipedia provides transparent edit histories, talk pages for dispute resolution, and formal appeals processes; community guidelines establish fair procedures

+0.35
Article 13 Freedom of Movement
Medium F:free_movement P:access
Structural
+0.35
Context Modifier
0.00
SETL
-0.13

Wikipedia accessible globally without geographic barriers; multiple language versions enable access across regions

+0.35
Article 17 Property
Medium F:intellectual_property P:attribution
Structural
+0.35
Context Modifier
0.00
SETL
-0.13

Wikipedia licensing model (CC-BY-SA/GFDL) protects creator property rights; attribution requirements enforced

+0.35
Article 20 Assembly & Association
Medium F:peaceful_assembly F:association
Structural
+0.35
Context Modifier
+0.30
SETL
-0.13

Wikipedia community enables peaceful assembly of editors; user groups and projects allow voluntary association around shared interests

+0.35
Article 25 Standard of Living
Medium F:healthcare_access F:education_access
Structural
+0.35
Context Modifier
+0.20
SETL
-0.19

Wikipedia provides free universal access to educational content supporting health and welfare knowledge

+0.35
Article 29 Duties to Community
Medium F:community_duties P:responsibility
Structural
+0.35
Context Modifier
0.00
SETL
-0.13

Wikipedia community enforces responsibilities through editing standards, dispute resolution, and policies against harmful content; balances rights with duties

+0.30
Article 2 Non-Discrimination
Low F:non_discrimination
Structural
+0.30
Context Modifier
0.00
SETL
-0.17

Platform enforces anti-discrimination policies in community guidelines; content moderation addresses hostile content

+0.30
Article 8 Right to Remedy
Medium F:recognition P:attribution
Structural
+0.30
Context Modifier
0.00
SETL
-0.12

Wikipedia's edit attribution system and licensing provide legal recognition of contributor rights; GFDL/CC licenses acknowledge creator protections

+0.30
Article 12 Privacy
Medium P:privacy_protection
Structural
+0.30
Context Modifier
+0.20
SETL
-0.17

Wikipedia minimizes tracking and data collection; anonymous reading/editing available; privacy policies protect user data

+0.30
Article 22 Social Security
Low F:social_security
Structural
+0.30
Context Modifier
0.00
SETL
-0.12

Wikipedia as freely accessible knowledge resource enables personal development and skill acquisition

+0.25
Article 3 Life, Liberty, Security
Medium P:user_security
Structural
+0.25
Context Modifier
+0.15
SETL
ND

Wikipedia supports anonymous editing and reading; users can access content without providing personal data; privacy protections enable safe participation

+0.25
Article 5 No Torture
Low P:user_protection
Structural
+0.25
Context Modifier
+0.15
SETL
ND

Wikipedia community policies prohibit harassment and abuse; content moderation systems and community enforcement reduce torture/cruel treatment risks

+0.25
Article 6 Legal Personhood
Low F:human_agency
Structural
+0.25
Context Modifier
0.00
SETL
-0.11

Wikipedia attributes edits to individuals by username; user accounts recognize individual agency

+0.25
Article 23 Work & Equal Pay
Low F:work_rights
Structural
+0.25
Context Modifier
0.00
SETL
-0.11

Wikipedia contributors perform work freely; volunteer editors donate labor voluntarily without exploitation

+0.25
Article 24 Rest & Leisure
Low F:rest_leisure
Structural
+0.25
Context Modifier
0.00
SETL
-0.11

Volunteer editors control own time commitment; no mandatory participation required

+0.25
Article 30 No Destruction of Rights
Low F:prevention_of_abuse
Structural
+0.25
Context Modifier
0.00
SETL
-0.11

Wikipedia policies explicitly prevent articles from being used to promote rights destruction; moderation protects against hate speech and rights violations

+0.20
Article 14 Asylum
Low F:asylum_support
Structural
+0.20
Context Modifier
0.00
SETL
ND

Wikipedia as open platform provides refuge for persecuted voices through anonymous publication and protection from surveillance

+0.20
Article 15 Nationality
Low F:national_identity
Structural
+0.20
Context Modifier
0.00
SETL
+0.11

Wikipedia operates across national borders; policies do not discriminate based on nationality

ND
Article 4 No Slavery

Not applicable to technical reference content.

ND
Article 9 No Arbitrary Detention

Not applicable to technical reference content.

ND
Article 11 Presumption of Innocence

Not applicable to educational reference content.

ND
Article 16 Marriage & Family

Not applicable to programming language reference content.

Supplementary Signals
Epistemic Quality
0.65 low claims
Sources
0.7
Evidence
0.6
Uncertainty
0.6
Purpose
0.8
Propaganda Flags
0 techniques detected
Solution Orientation
0.68 solution oriented
Reader Agency
0.7
Emotional Tone
measured
Valence
+0.2
Arousal
0.1
Dominance
0.3
Stakeholder Voice
0.65 3 perspectives
Speaks: individualsinstitution
About: inventoracademic_community
Temporal Framing
retrospective historical
Geographic Scope
global
Complexity
moderate medium jargon general
Transparency
0.50
✗ Author
Event Timeline 4 events
2026-02-26 00:08 eval_success Evaluated: Moderate positive (0.42)
2026-02-26 00:07 eval_success Evaluated: Neutral (0.69)
2026-02-25 23:55 eval_success Evaluated: Moderate positive (0.58)
2026-02-25 23:18 eval_success Evaluated: Neutral (0.65)
About HRCB | By Right | HN Guidelines | HN FAQ | Source | UDHR | RSS
build 0ab3844+kau3 · deployed 2026-02-26 00:11 UTC · evaluated 2026-02-26 00:14:22 UTC