We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

Talk:Vines

From Esolang
Jump to navigation Jump to search

This should be a BSM as the tape and the seeds in total can store only bounded values (2n hexits to be exact, x is program size) but I'm very unsure so I haven't changed it Cleverxia (talk) 03:35, 19 August 2026 (UTC)

BSM as in binary state machine? that link points to an esolang —aadenboy (talk|contribs) 03:46, 19 August 2026 (UTC)
fixed ~,Cleverxia (talk) 03:51, 19 August 2026 (UTC)
Hm, that would make a lot of sense! I know I haven't looked much into computational models so I don't really know where to put the language myself... Also, sorry, which part of the infobox should I even put it in? Is it "typesys"? --✿❁❃aeropurple||φb❃❁✿ ❦contribs❦ 06:06, 29 August 2026 (UTC)
oh wait, I forgot that the language has built in infinite loop detection, so the language is Total. You should put it into the "class" section. Cleverxia (talk) 14:26, 10 September 2026 (UTC)
Perhaps it is a weird turing-complete version of Total? I don't know... I'm not very good at categorizing things I guess lol --✿❁❃aeropurple||φb❃❁✿ ❦contribs❦ 16:30, 14 September 2026 (UTC)
"D.O.T. is total because it don't have ANY way of looping/jumping. Adding a "while" command may make it Turing-complete."
Well, Vines has looping in a way, so I kind of doubt it belongs in the Total category, to be honest... --✿❁❃aeropurple||φb❃❁✿ ❦contribs❦ 16:39, 14 September 2026 (UTC)
totality and turing completeness are an oxymoron, or smth --dragoneater67 talk contribs 16:40, 14 September 2026 (UTC)
something which is Total by definition cannot be Turing-complete; Total languages guarantee halting —aadenboy (talk|contribs) 16:40, 14 September 2026 (UTC)
Yeah, that's what I thought, especially considering Vines never halts, unless you prevent it from doing anything on each loop --✿❁❃aeropurple||φb❃❁✿ ❦contribs❦ 17:41, 14 September 2026 (UTC)

a small note

even if the memory plane is infinite this language still isn't TC because the number of cells it can visit is bounded by twice the sum of b and d buds, making the plane's size essentially finite. making the memory plane infinite and making the seeds remember their memory plane positions through loops may work though... Cleverxia (talk) 08:11, 29 September 2026 (UTC)

oops, forgort the ^, but that just multiplies the bound by 16seed count, so still bounded Cleverxia (talk) 08:13, 29 September 2026 (UTC)
Since the state of the memory is preserved between gens, you can just store the seed's current position, and once it regenerates just retrieve it again. This would allow you to repeatedly move around the memory plane over generations.
Also, technically speaking, every system with a finite memory is not Turing-complete, including every single device we have now, but that's besides the point I think
I'm already in the process of making a Truth-machine, I just need to actually implement the ^ in my interpreter to test it properly, but I can assure you it can be done --✿❁❃aeropurple||φb❃❁✿ ❦contribs❦ 19:42, 29 September 2026 (UTC)
how do you store and retrieve an arbitrarily large seed position? --dragoneater67 [talk|contribs] 03:26, 30 September 2026 (UTC)
The way I see it, there's not a lot of point in being able to get an arbitrarily large seed position. It's up to you to set the size of the memory after all. And even if you allocate a whopping 2 GB to a Vines program (this is my personal upper bound on my laptop), you'd only need 8 memory cells to represent a seed's position in memory.
Yes, not being able to grab a seed's position directly is an annoyance, but keeping a seed's position in memory is a form of redundancy, so it's up to you to update everything properly anyway.
I could certainly add a way to do this easier, I don't see a lot of point in it personally, but feel free to disagree --✿❁❃aeropurple||φb❃❁✿ ❦contribs❦ 05:06, 30 September 2026 (UTC)
so it seems to be not tc, read Talk:VoidPtr to understand why allowing arbitrarily large (but not infinite) memory is not enough for tcness --dragoneater67 [talk|contribs] 05:25, 30 September 2026 (UTC)
Again, that's going off of the classical definition of TC, which is a computer with an infinite memory. I'd say that's not a very useful definition in terms of languages in general.
From what I see, this language has conditional loops and random memory access, so it can simulate a CPU pretty easily. Are CPUs BSM's or are they actually TC? That's what my question is now. --✿❁❃aeropurple||φb❃❁✿ ❦contribs❦ 08:18, 30 September 2026 (UTC)
any cpu that exists is a bsm, condtional loops and random memory acess is not enough if theres a bound to the memory --dragoneater67 [talk|contribs] 09:28, 30 September 2026 (UTC)
Hm, the Category:Bounded-storage machine is weirdly desolate... Is it just forgotten on this wiki, or are most programming languages just unbounded in terms of memory? --✿❁❃aeropurple||φb❃❁✿ ❦contribs❦ 20:58, 30 September 2026 (UTC)
Category:Bounded-storage machine is an undiscussed category, and does not appear in Esolang:Categorization bounded storage machines should go in Category:Finite state automata which has many languages in it --dragoneater67 [talk|contribs] 02:31, 1 October 2026 (UTC)
TCness requires memory arbitratily large. not even Graham's number of memory is large enough.Cleverxia (talk) 06:11, 30 September 2026 (UTC)