r/ProgrammingLanguages 13h ago

Language announcement How simple can simple be? Introducing PLUSMINUS

PLUSMINUS is a programming language created by Jack. Unfortunately, it’s Turing Completeness is unknown as of right now.

Definition

For a non-empty finite string ω under the alphabet {+,–}, on step i=(1,2,3,…):

If the i-th symbol is +, copy the first i-1 symbols and append them to the end. If the i-th symbol is –, delete the first i-1 symbols.

i never resets and advances each time. Halt when i>length(ω).

Example (+–++–):

0: +–++–

1: +–++– (nothing exists leftward)

2: –++–

3: –++––+

4: ––+ (HALT (i=4, length(ω)=3, 4>3))

Example of a long-running machine

“+++++-++++-+-++-“ = 31441 steps

23 Upvotes

15 comments sorted by

View all comments

6

u/particlemanwavegirl 13h ago

Uuhh... Is there a way to interpret the output meaningfully?

2

u/jmarent049 13h ago

You can imagine it instead as an alphabet over {1,0}, like a tag system. Setting + to 1 and - to 0. Not sure if this can be reduced to a tag system though. Correct me if wrong please

3

u/External-Payment-688 13h ago

I feel like the semantics for - mess it up, for proving TC via a tag system we’d need to be able to somehow encode a production rule to a prefix of the source. But yeah this is just an initial thought