Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Cyborg)
  • No Skin
Collapse
Brand Logo

CIRCLE WITH A DOT

  1. Home
  2. Uncategorized
  3. i feel that the grammar of a programming language is among the least appropriate of all possible facets of its behavior to start off with.

i feel that the grammar of a programming language is among the least appropriate of all possible facets of its behavior to start off with.

Scheduled Pinned Locked Moved Uncategorized
118 Posts 14 Posters 0 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • hipsterelectron@circumstances.runH hipsterelectron@circumstances.run

    i keep reading to find when i'm gonna find some discussion of semantics. hasn't happened yet

    hipsterelectron@circumstances.runH This user is from outside of this forum
    hipsterelectron@circumstances.runH This user is from outside of this forum
    hipsterelectron@circumstances.run
    wrote last edited by
    #14

    the reason i fell into this trap in the first place because i wanted to understand what "C formalized in HOL" was on about https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-453.pdf

    C also combines a number of interesting features on the theoretical front, making it additionally interesting as a subject of study.

    this is not something i wanna hear from someone claiming to have formalized it

    For example, C’s expressions both are side-effecting and have very under-specified evaluation orders. If these semantic features were the main area of interest in studying a language, then it would clearly be easier to construct a simple calculus that included these features and little else.

    this is ridiculous. obviously these semantic features are not ideal when attempting to write code that runs e.g. in ring 0. yet people do it (and this is meaningfully outside the C standard). the UB becomes defined thanks to our friends who write the compiler. is it worth attempting to standardize ring 0 properties?

    However, we prefer to attack as much of C as possible all at once. As Milner and Tofte point out in the commentary on the definition of SML [MT90], this study of languages in their entirety has its own grounds for interest, and we further feel that our study of C gives us a possible
    application in the area of software verification.

    they didn't even mention a single concrete implementation until the appendices

    hipsterelectron@circumstances.runH 1 Reply Last reply
    0
    • hipsterelectron@circumstances.runH hipsterelectron@circumstances.run

      the reason i fell into this trap in the first place because i wanted to understand what "C formalized in HOL" was on about https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-453.pdf

      C also combines a number of interesting features on the theoretical front, making it additionally interesting as a subject of study.

      this is not something i wanna hear from someone claiming to have formalized it

      For example, C’s expressions both are side-effecting and have very under-specified evaluation orders. If these semantic features were the main area of interest in studying a language, then it would clearly be easier to construct a simple calculus that included these features and little else.

      this is ridiculous. obviously these semantic features are not ideal when attempting to write code that runs e.g. in ring 0. yet people do it (and this is meaningfully outside the C standard). the UB becomes defined thanks to our friends who write the compiler. is it worth attempting to standardize ring 0 properties?

      However, we prefer to attack as much of C as possible all at once. As Milner and Tofte point out in the commentary on the definition of SML [MT90], this study of languages in their entirety has its own grounds for interest, and we further feel that our study of C gives us a possible
      application in the area of software verification.

      they didn't even mention a single concrete implementation until the appendices

      hipsterelectron@circumstances.runH This user is from outside of this forum
      hipsterelectron@circumstances.runH This user is from outside of this forum
      hipsterelectron@circumstances.run
      wrote last edited by
      #15

      This style of definition was used in the definition of Standard ML by Milner, Tofte and Harper [MTH90]. This example, one of the most famous formal language definitions, is a clear demonstration that a large language can be formalised in this manner.

      i'm getting the impression that the seL4 HOL C semantics may not be as useful as it's being let on lmao

      hipsterelectron@circumstances.runH xyhhx@social.treehouse.systemsX 2 Replies Last reply
      0
      • hipsterelectron@circumstances.runH hipsterelectron@circumstances.run

        This style of definition was used in the definition of Standard ML by Milner, Tofte and Harper [MTH90]. This example, one of the most famous formal language definitions, is a clear demonstration that a large language can be formalised in this manner.

        i'm getting the impression that the seL4 HOL C semantics may not be as useful as it's being let on lmao

        hipsterelectron@circumstances.runH This user is from outside of this forum
        hipsterelectron@circumstances.runH This user is from outside of this forum
        hipsterelectron@circumstances.run
        wrote last edited by
        #16

        Precisely because the standard’s definition of C is not formal, we can never hope to prove our formal definition consistent with it.

        actively violent and evil thing to say

        hipsterelectron@circumstances.runH 1 Reply Last reply
        0
        • hipsterelectron@circumstances.runH hipsterelectron@circumstances.run

          Precisely because the standard’s definition of C is not formal, we can never hope to prove our formal definition consistent with it.

          actively violent and evil thing to say

          hipsterelectron@circumstances.runH This user is from outside of this forum
          hipsterelectron@circumstances.runH This user is from outside of this forum
          hipsterelectron@circumstances.run
          wrote last edited by
          #17

          At best we can hope that our definition comes to be seen as correct by the community of people concerned with C’s definition and standardisation.

          this is now becoming kind of worrying. a formal semantics can be matched to the behavior from a compiler and our friends in the compiler and in our CPU architecture manuals can describe whether it matches the "formalization"

          Such a community can perform very useful error-checking.

          how does anyone write this stuff

          hipsterelectron@circumstances.runH 1 Reply Last reply
          0
          • hipsterelectron@circumstances.runH hipsterelectron@circumstances.run

            At best we can hope that our definition comes to be seen as correct by the community of people concerned with C’s definition and standardisation.

            this is now becoming kind of worrying. a formal semantics can be matched to the behavior from a compiler and our friends in the compiler and in our CPU architecture manuals can describe whether it matches the "formalization"

            Such a community can perform very useful error-checking.

            how does anyone write this stuff

            hipsterelectron@circumstances.runH This user is from outside of this forum
            hipsterelectron@circumstances.runH This user is from outside of this forum
            hipsterelectron@circumstances.run
            wrote last edited by
            #18

            In addition, if used as the basis for software tools that do not necessarily require a deep understanding of its details, a formal semantics may come to be accepted as correct simply because of what it has made possible in the pragmatic domain.

            this is FUCKED! a formal semantics is not something you can bully people into accepting. jfc

            hipsterelectron@circumstances.runH jab01701mid@mastodon.socialJ 2 Replies Last reply
            0
            • hipsterelectron@circumstances.runH hipsterelectron@circumstances.run

              In addition, if used as the basis for software tools that do not necessarily require a deep understanding of its details, a formal semantics may come to be accepted as correct simply because of what it has made possible in the pragmatic domain.

              this is FUCKED! a formal semantics is not something you can bully people into accepting. jfc

              hipsterelectron@circumstances.runH This user is from outside of this forum
              hipsterelectron@circumstances.runH This user is from outside of this forum
              hipsterelectron@circumstances.run
              wrote last edited by
              #19

              A denotational semantics defines an appropriate mathematical space as a model for a language, and maps the language’s syntax into that space in a way that is compositional. This property requires that the semantics of a syntactic phrase be a function of the semantics of the phrase’s syntactic sub-components.

              so "denotation semantics" is a made up interpretation that conforms to some fuckboy's idea of aesthetically pleasing. see i'm learning so much

              hipsterelectron@circumstances.runH milo@types.plM 2 Replies Last reply
              0
              • hipsterelectron@circumstances.runH hipsterelectron@circumstances.run

                A denotational semantics defines an appropriate mathematical space as a model for a language, and maps the language’s syntax into that space in a way that is compositional. This property requires that the semantics of a syntactic phrase be a function of the semantics of the phrase’s syntactic sub-components.

                so "denotation semantics" is a made up interpretation that conforms to some fuckboy's idea of aesthetically pleasing. see i'm learning so much

                hipsterelectron@circumstances.runH This user is from outside of this forum
                hipsterelectron@circumstances.runH This user is from outside of this forum
                hipsterelectron@circumstances.run
                wrote last edited by
                #20

                it keeps going. now he's claiming to be the first to have invented the C abstract machine (operational semantics)

                hipsterelectron@circumstances.runH 1 Reply Last reply
                0
                • hipsterelectron@circumstances.runH hipsterelectron@circumstances.run

                  it keeps going. now he's claiming to be the first to have invented the C abstract machine (operational semantics)

                  hipsterelectron@circumstances.runH This user is from outside of this forum
                  hipsterelectron@circumstances.runH This user is from outside of this forum
                  hipsterelectron@circumstances.run
                  wrote last edited by
                  #21

                  OMG

                  It is central to our thesis that the semantics of C is so complicated that it can only be usefully manipulated in the context of a theorem prover.

                  THE C STANDARD IS WRITTEN BY HUMANS? FOR HUMANS?

                  hipsterelectron@circumstances.runH miss_rodent@girlcock.clubM 2 Replies Last reply
                  0
                  • hipsterelectron@circumstances.runH hipsterelectron@circumstances.run

                    A denotational semantics defines an appropriate mathematical space as a model for a language, and maps the language’s syntax into that space in a way that is compositional. This property requires that the semantics of a syntactic phrase be a function of the semantics of the phrase’s syntactic sub-components.

                    so "denotation semantics" is a made up interpretation that conforms to some fuckboy's idea of aesthetically pleasing. see i'm learning so much

                    milo@types.plM This user is from outside of this forum
                    milo@types.plM This user is from outside of this forum
                    milo@types.pl
                    wrote last edited by
                    #22

                    @hipsterelectron im on team operational semantics

                    1 Reply Last reply
                    0
                    • hipsterelectron@circumstances.runH hipsterelectron@circumstances.run

                      OMG

                      It is central to our thesis that the semantics of C is so complicated that it can only be usefully manipulated in the context of a theorem prover.

                      THE C STANDARD IS WRITTEN BY HUMANS? FOR HUMANS?

                      hipsterelectron@circumstances.runH This user is from outside of this forum
                      hipsterelectron@circumstances.runH This user is from outside of this forum
                      hipsterelectron@circumstances.run
                      wrote last edited by
                      #23

                      this is also pretty worrying because he dismissed earlier ever conforming with the C standard, and seL4 literally just asserts that its C code conforms to the model

                      hipsterelectron@circumstances.runH tryst@fedi.imu.liT 2 Replies Last reply
                      0
                      • hipsterelectron@circumstances.runH hipsterelectron@circumstances.run

                        this is also pretty worrying because he dismissed earlier ever conforming with the C standard, and seL4 literally just asserts that its C code conforms to the model

                        hipsterelectron@circumstances.runH This user is from outside of this forum
                        hipsterelectron@circumstances.runH This user is from outside of this forum
                        hipsterelectron@circumstances.run
                        wrote last edited by
                        #24

                        like this was not some newfangled thing people started doing recently! people writing code that needs to validate nontrivial properties generally do it by actually getting their hands dirty and doing the work to link the compiler's internal semantics to the representation made in HOL or whatever

                        hipsterelectron@circumstances.runH 1 Reply Last reply
                        0
                        • hipsterelectron@circumstances.runH hipsterelectron@circumstances.run

                          like this was not some newfangled thing people started doing recently! people writing code that needs to validate nontrivial properties generally do it by actually getting their hands dirty and doing the work to link the compiler's internal semantics to the representation made in HOL or whatever

                          hipsterelectron@circumstances.runH This user is from outside of this forum
                          hipsterelectron@circumstances.runH This user is from outside of this forum
                          hipsterelectron@circumstances.run
                          wrote last edited by
                          #25

                          Without mechanical support, reasoning with a big semantics is error-prone, and it can be hard to be confident that one’s proofs are actually correct.

                          does he..........how does he think c compilers work

                          hipsterelectron@circumstances.runH 1 Reply Last reply
                          0
                          • hipsterelectron@circumstances.runH hipsterelectron@circumstances.run

                            Without mechanical support, reasoning with a big semantics is error-prone, and it can be hard to be confident that one’s proofs are actually correct.

                            does he..........how does he think c compilers work

                            hipsterelectron@circumstances.runH This user is from outside of this forum
                            hipsterelectron@circumstances.runH This user is from outside of this forum
                            hipsterelectron@circumstances.run
                            wrote last edited by
                            #26

                            Using a theorem prover means that we are confident that all of the results we have proved are correct.

                            "correct"

                            Having used the theorem prover HOL [GM93], we are particularly confident, as this system, following the example of its ancestor system LCF [GMW79], uses the strong type system of ML to guarantee that values of type theorem are only produced in ways that are logically sound.

                            that's it. that's your persuasive essay???

                            hipsterelectron@circumstances.runH 1 Reply Last reply
                            0
                            • hipsterelectron@circumstances.runH hipsterelectron@circumstances.run

                              Using a theorem prover means that we are confident that all of the results we have proved are correct.

                              "correct"

                              Having used the theorem prover HOL [GM93], we are particularly confident, as this system, following the example of its ancestor system LCF [GMW79], uses the strong type system of ML to guarantee that values of type theorem are only produced in ways that are logically sound.

                              that's it. that's your persuasive essay???

                              hipsterelectron@circumstances.runH This user is from outside of this forum
                              hipsterelectron@circumstances.runH This user is from outside of this forum
                              hipsterelectron@circumstances.run
                              wrote last edited by
                              #27

                              he keeps mentioning like "yeah these theorems take a lot of effort to prove.......and often they're completely unusable too" like sir have you considered that things being difficult might indicate that you need to find a semantics engine that doesn't hate you

                              hipsterelectron@circumstances.runH 1 Reply Last reply
                              0
                              • hipsterelectron@circumstances.runH hipsterelectron@circumstances.run

                                he keeps mentioning like "yeah these theorems take a lot of effort to prove.......and often they're completely unusable too" like sir have you considered that things being difficult might indicate that you need to find a semantics engine that doesn't hate you

                                hipsterelectron@circumstances.runH This user is from outside of this forum
                                hipsterelectron@circumstances.runH This user is from outside of this forum
                                hipsterelectron@circumstances.run
                                wrote last edited by
                                #28

                                cambridge still batting 100% on being actively evil people who just write whatever they want on official letterhead

                                hipsterelectron@circumstances.runH 1 Reply Last reply
                                0
                                • hipsterelectron@circumstances.runH hipsterelectron@circumstances.run

                                  OMG

                                  It is central to our thesis that the semantics of C is so complicated that it can only be usefully manipulated in the context of a theorem prover.

                                  THE C STANDARD IS WRITTEN BY HUMANS? FOR HUMANS?

                                  miss_rodent@girlcock.clubM This user is from outside of this forum
                                  miss_rodent@girlcock.clubM This user is from outside of this forum
                                  miss_rodent@girlcock.club
                                  wrote last edited by
                                  #29

                                  @hipsterelectron ... if *C* is that complicated, the higher level languages must all be just completely fucked, then, by this standard.

                                  1 Reply Last reply
                                  0
                                  • hipsterelectron@circumstances.runH hipsterelectron@circumstances.run

                                    cambridge still batting 100% on being actively evil people who just write whatever they want on official letterhead

                                    hipsterelectron@circumstances.runH This user is from outside of this forum
                                    hipsterelectron@circumstances.runH This user is from outside of this forum
                                    hipsterelectron@circumstances.run
                                    wrote last edited by
                                    #30

                                    https://trustworthy.systems/publications/papers/Tuch%3Aphd.pdf

                                    this one is hosted on the seL4 site

                                    Systems impose on languages many abstraction breaking requirements

                                    "systems" lmao

                                    and are not usually considered amenable to implementation in higher-level languages like Java and ML.

                                    yeah cause the JVM abstract machine is specifically built to be this fucked up carnival ride. you could do it if you specifically forked the JVM. hate this lack of precision from ppl who are so loud about "formalism"

                                    For example, zero-copy I/O and address translation are crucial features

                                    zero-copy IO and address translation are extremely different things. zero-copy IO doesn't even make sense in ring 0 and is not in fact a "crucial feature". it's not even a language feature!

                                    and programmers demand the freedom to control data structure layout [87],

                                    you can "control data structure layout" in any language that lets you address bytes which i think is literally all of them. C struct layout is actually rly annoying because you can't let the compiler help you at all

                                    in particular when optimising the cache and TLB footprint that is typically opaque in such languages.

                                    those aren't your data structures those are the CPU's and that's ring 0 again, not a language feature

                                    Inside the research community there are recent promising efforts at harnessing the gains of the last three decades of programming language research [8, 22, 29, 37, 46, 68, 89],

                                    guy who knows nothing about anything he just said: "i represent the 'research community' and we will exterminate your kind"

                                    with an emphasis on types and static checking, when implementing systems.

                                    this guy grew into the rust evangelism strike force

                                    However, these advances are yet to be popularised in industry

                                    guy who thinks "systems" are an industry-specific thing

                                    and still face enormous scepticism from systems implementors who are highly obsessed
                                    with efficiency, sometimes to the extreme where clock cycles are the metric of choice.

                                    this fucking guy!!!!! clock cycles can actually be counted reliably lmao. THIS is what seL4 is standing behind

                                    hipsterelectron@circumstances.runH 1 Reply Last reply
                                    0
                                    • hipsterelectron@circumstances.runH hipsterelectron@circumstances.run

                                      https://trustworthy.systems/publications/papers/Tuch%3Aphd.pdf

                                      this one is hosted on the seL4 site

                                      Systems impose on languages many abstraction breaking requirements

                                      "systems" lmao

                                      and are not usually considered amenable to implementation in higher-level languages like Java and ML.

                                      yeah cause the JVM abstract machine is specifically built to be this fucked up carnival ride. you could do it if you specifically forked the JVM. hate this lack of precision from ppl who are so loud about "formalism"

                                      For example, zero-copy I/O and address translation are crucial features

                                      zero-copy IO and address translation are extremely different things. zero-copy IO doesn't even make sense in ring 0 and is not in fact a "crucial feature". it's not even a language feature!

                                      and programmers demand the freedom to control data structure layout [87],

                                      you can "control data structure layout" in any language that lets you address bytes which i think is literally all of them. C struct layout is actually rly annoying because you can't let the compiler help you at all

                                      in particular when optimising the cache and TLB footprint that is typically opaque in such languages.

                                      those aren't your data structures those are the CPU's and that's ring 0 again, not a language feature

                                      Inside the research community there are recent promising efforts at harnessing the gains of the last three decades of programming language research [8, 22, 29, 37, 46, 68, 89],

                                      guy who knows nothing about anything he just said: "i represent the 'research community' and we will exterminate your kind"

                                      with an emphasis on types and static checking, when implementing systems.

                                      this guy grew into the rust evangelism strike force

                                      However, these advances are yet to be popularised in industry

                                      guy who thinks "systems" are an industry-specific thing

                                      and still face enormous scepticism from systems implementors who are highly obsessed
                                      with efficiency, sometimes to the extreme where clock cycles are the metric of choice.

                                      this fucking guy!!!!! clock cycles can actually be counted reliably lmao. THIS is what seL4 is standing behind

                                      hipsterelectron@circumstances.runH This user is from outside of this forum
                                      hipsterelectron@circumstances.runH This user is from outside of this forum
                                      hipsterelectron@circumstances.run
                                      wrote last edited by
                                      #31

                                      Even today, it is easy to violate the C type system by its cast mechanism and through address arithmetic.

                                      guy who thinks C's type system is being violated through casting and address arithmetic. you know those have concrete semantics right

                                      The programmer is given, intentionally, access to low-level bit and byte representations of values in memory.

                                      again, that's literally every language

                                      There are no checks on array bounds when indexing — this would violate C’s design philosophy.

                                      the guy who is telling you with a straight face that he totally formalized C semantics for high-assurance ring 0 scenarios is now telling you he finds the language detestable

                                      hipsterelectron@circumstances.runH natty@astolfo.socialN somebody@tech.lgbtS 3 Replies Last reply
                                      0
                                      • hipsterelectron@circumstances.runH hipsterelectron@circumstances.run

                                        Even today, it is easy to violate the C type system by its cast mechanism and through address arithmetic.

                                        guy who thinks C's type system is being violated through casting and address arithmetic. you know those have concrete semantics right

                                        The programmer is given, intentionally, access to low-level bit and byte representations of values in memory.

                                        again, that's literally every language

                                        There are no checks on array bounds when indexing — this would violate C’s design philosophy.

                                        the guy who is telling you with a straight face that he totally formalized C semantics for high-assurance ring 0 scenarios is now telling you he finds the language detestable

                                        hipsterelectron@circumstances.runH This user is from outside of this forum
                                        hipsterelectron@circumstances.runH This user is from outside of this forum
                                        hipsterelectron@circumstances.run
                                        wrote last edited by
                                        #32

                                        god it would be so cool if rust gave a shit about correctness

                                        hipsterelectron@circumstances.runH 1 Reply Last reply
                                        0
                                        • hipsterelectron@circumstances.runH hipsterelectron@circumstances.run

                                          In addition, if used as the basis for software tools that do not necessarily require a deep understanding of its details, a formal semantics may come to be accepted as correct simply because of what it has made possible in the pragmatic domain.

                                          this is FUCKED! a formal semantics is not something you can bully people into accepting. jfc

                                          jab01701mid@mastodon.socialJ This user is from outside of this forum
                                          jab01701mid@mastodon.socialJ This user is from outside of this forum
                                          jab01701mid@mastodon.social
                                          wrote last edited by
                                          #33

                                          @hipsterelectron Kind of reminds me of "Proven in Use" defense in automotive, SIL-levels.

                                          Because a certain design has worked for 50 years, it's taken to be correct. Something like that. Now we are down to a few weeks or a product ?

                                          "The requirements of these schemes can be met either by establishing a rigorous development process, or by establishing that the device has sufficient operating history to argue that it has been proven in use."

                                          Link Preview Image
                                          Safety integrity level - Wikipedia

                                          favicon

                                          (en.wikipedia.org)

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups