Vraag:
Is de moderne "wordt gedefinieerd als" notatie van computerprogrammering?
Chester
2015-09-05 19:09:32 UTC
view on stackexchange narkive permalink

Voor zover ik weet, is het symbool voor "wordt gedefinieerd als" historisch gezien de notatie $ \ equiv $ of $ \ triangleq $. Meer recentelijk echter lijkt de notatie $: = $ de laatste twee notaties te hebben ingehaald (dit lijkt tenminste het geval te zijn in moderne teksten).

Er is gesuggereerd dat deze notatie werd overgenomen van de toewijzingsoperator in computerprogrammeertalen - in het bijzonder van Pascal. Bestaat er bewijs van het gebruik van deze notatie in de wiskunde voor "wordt gedefinieerd als" voordat het wijdverbreid werd gebruikt als de toewijzingsoperator bij het programmeren?

Een antwoord:
HDE 226868
2015-09-05 21:32:54 UTC
view on stackexchange narkive permalink

Ik heb een beetje rondgekeken en de door jou genoemde Wikipedia-link gevolgd naar een andere subsectie, waarin staat

International Algebraic Language and ALGOL (1958 en 1960) daarom introduceerde ": = " voor toewijzing, waardoor de standaard " = " beschikbaar bleef voor gelijkheid, een conventie gevolgd door CPL, Algol W, BCPL, Simula, Algol 68, SETL , Pascal, Smalltalk, Modula2, Ada, Standard ML, OCaml, Eiffel, Delphi, Oberon, Dylan, VHDL en verschillende andere talen.

Het probleem was natuurlijk dat er geval waarin uitdrukkingen zoals

Variable = Variable + NewVariable

geldig zijn. Als in de wiskunde dezelfde bewering werd gebruikt, zou het duidelijk onwaar zijn als $ \ text {NewVariable} \ neq1 $. Daarom werd besloten om := te gebruiken.

Ik vond de tekst van ALGOL 1958 (hoewel niet de daaropvolgende tekst uit 1960), en het is weliswaar ondersteunt deze interpretatie nergens expliciet. Het legt echter sterk de nadruk op de gebruiker van : = in statements, terwijl het = niet als bouwsteen voor de taal vermeldt, dus ik denk dat het veilig is om te zeggen dat dit markeerde de overgang, zoals beweerd. We hebben daarom een ​​datum van het vroege gebruik van : = : 1958.

Ik heb verschillende teksten en sites gevonden die ongeveer dezelfde bewoordingen gebruiken bij het bespreken van de geschiedenis van 'is gedefinieerd als "in wiskunde. Dit stelt bijvoorbeeld dat

$: = $ (het gelijk-per-definitie-teken) betekent "is per definitie gelijk aan". Dit is een gebruikelijke alternatieve vorm van het symbool "$ = _ {\ text {Def}} $", dat voorkomt in het boek Logica Matematica uit 1894 van de logicus Cesare Burali-Forti (1861–1931). Andere veel voorkomende alternatieve vormen van het symbool ‘$ = _ {\ text {Def}} $’ zijn ‘[a]’ en ‘$ \ equiv $’. Dit laatste komt vooral veel voor in toegepaste wiskunde.

Hier is [a] een vervanger voor een symbool dat niet correct wordt weergegeven. Op pagina 7 van een versie van het boek zie ik een verklaring die lijkt te eindigen op $$ = 1: =: D (xy, z) = 1 $$, inclusief $: =: $ , een mogelijke variant van het symbool.

Op pagina 26 schrijft hij echter een uitdrukking die $$ a = b: = _ {\ text {Def}} $$ bevat. Ik denk echter dat het is waarschijnlijker dat het gewoon een gebruik is van $: $ with $ = _ {\ text {Def}} $, die hij verderop op de pagina introduceerde.

Ik denk dat het waarschijnlijk is dat Burali -Forti gebruikt het symbool ergens binnenin, maar ik weet het niet zeker. In ieder geval lijkt het waarschijnlijk dat "$ = $", of een variant daarvan, vóór 1958 werd gebruikt.

In feite was vóór ALGOL 58 de programmeertaal IAL (hierboven vermeld) die ook de: = gebruikte voor zowel functiedefinitie (vroege versies) als variabele toewijzing. ALGOL 58 is de directe afstammeling van IAL. ALGOL 58 was ook de eerste programmeertaal gespecificeerd in Backus-Naur-vorm, waar de vroege versies van Backus-notatie gebruikten: = voor definities. Een van de wijzigingen van Naur was om :: = te gebruiken in plaats van: = voor definities.
Klopt, maar IAL is niet meer dan een paar jaar geleden ontwikkeld. Ik wist echter niets van de Backus-Naur-vorm.
De "dubbele punt" $: $ maakt deel uit van de notatie die wordt gebruikt om haakjes te vervangen; het dateert uit Peano en werd veel gebruikt in W&P [Principia] (http://plato.stanford.edu/entries/pm-notation/). De formule van pagina 26 moet (in moderne notatie) worden gelezen als: $ (a \ equiv b) = _ {Def} (a \ supset b) \ land (b \ supset a) $.
Vergelijk met Alfred North Whitehead & Bertrand Russell, [Principia Mathematica to # 56] (https://books.google.it/books?id=ke9yGmFy24sC&pg=PA9) (2e druk - 1927), pagina 9: * Het gebruik van stippen *, en pagina 7 voor de definitie van * Equivalence *.
@MauroALLEGRANZA maar dat heeft geen enkele relatie met het gebruik van $: = $ want "wordt wel gedefinieerd als"?
@Chester: NEE, dat doet het niet. Zowel Burali-Forti als * Principia * gebruiken $ = _ {Def} $.
Ik begrijp het, dus u presenteerde dit als bewijs dat $: = $ niet werd gebruikt (in de zin van per definitie gelijk) vóór de ALGOL-gerelateerde talen uit de jaren 50?
@Chester - Ik zeg dat het niet werd gebruikt door Burali-Forti (of een andere logicus van eind XIX - begin XX eeuw) ...


Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 3.0-licentie waaronder het wordt gedistribueerd.
Loading...