I make things: electronics and software and music and stories and all sorts of other things.

  • 0 Posts
  • 18 Comments
Joined 1 year ago
cake
Cake day: June 14th, 2023

help-circle



  • Here’s how I think it works

    In formal language, what it means to accept a verification means does the result fall into the list of acceptable values.

    Consider adding two 2-bit numbers:

    • Alphabet: { 0, 1}
    • Language: x x consists of four binary digits representing two 2-bit binary numbers where the result of adding these two numbers is a valid 2-bit binary number (i.e. falls between 00 and 11)
    • Then you have an automata that will:
      • Start from the rightmost bit
      • Add the corresponding bits (+ carry from any previous iterations)
      • Carry over to the left if needed
      • Repeat for both bits
      • Check for acceptance
    • Machine as a whole simply checks did the inputs produce a valid 2-bit number, so it just accepts or rejects

    The machine itself simply holds this automata and language, so all it does is take input and reject/accept end state. I think you’re just getting caught up in definitions

    A sum of a list of numbers I think would be something like

    • Alphabet: digits 0-9 and ‘,’
    • Language: a single string of digits or a single string of digits followed by a comma and another valid string
    • Automata:
      • Are we a single string of digits? If yes, accept
      • Sum the last number into the first and remove the comma
      • Repeat
    • Machine: Does the some operation result in a valid string?

    Machines accept a valid state or hit an error state (accept/reject). The computation happens between the input and accept/reject.

    But maybe I don’t understand it either. It’s been a while since I poked around at this stuff.







  • What I said:

    You could mull over and discuss a million different ways to get started. The most important thing is to be decisive and just do

    We could go on for hours debating what the best beginner language, environment, project, etc is, but the important thing is that they pick something and do it.

    I gave them a specific thing to get started on. That’s the important thing.

    Learning programming is gonna be hard. They’re gonna face issues no matter what, so like I said:

    Is it the best way? Who cares just get started

    That’s why I said you missed the point. I don’t think you read my reply at all and just stopped at the first word lol









  • I feel it’s caused by two things:

    • In industry, most people do more reading than writing, so you see a lot of other people’s mistakes and have to fix them rather than your own. You don’t make enough code to feel humbled.
    • Out of industry, there’s often a vacuum. You code one way and make a thing and you’re proud of it. You never hear criticism, and you’re defensive of your abilities. This could be programmers who are new or just out of college or do it as a side to their main job. You don’t share code enough with people to learn better ways and be humbled. Good enough is enough to be proud of.

    There’s an in between state that can open up the door to humility. Maybe a person who works at a company and thus deals with customers, non-programmers, and a team but still works on open source and in their free time build lots of side-projects and open sources them. You’re making enough code and putting it out there enough to really receive good criticism. Those people would be more likely to be humble I suppose