Synced

From Esolang
Jump to navigation Jump to search
Synced
Paradigm(s) Imperative
Designed by User:ZippyMagician
Appeared in 2020
Memory system Arbitrarily-sized tape
Computational class Finite-state automaton
Reference implementation Implemented
File extension(s) .sync

Synced is an esolang designed by User:ZippyMagician one day due to boredom.

Description of language

Synced is a synchronous language that runs every line of the program at the same time. Each operation on each line is performed in a tick, with the pointer for each moving after evaluation. Users can simulate a "do nothing for one tick" by putting in a space or ^. Due to the nature of this language, programs will be very long. Each line of the program (henceforth referred to as an operator) stores a value, initialized at 0. Every operator can interact with the values of other operators, through referencing them by use of a number marking the line. Once a line ends, the operator wraps around to the beginning of the line or the first ^ if there is one. Once every operator is halted, a program terminates.
Parameters, if needed, are inserted after the main command. These parameters do not take an extra tick to parse. Input can be taken as either a character or integer, and output can be given as a character, string, or integer if needed. The value of an operator can only be an integer, however.
Every print command will output a newline afterwards.

This language is not Turing Complete.

Syntax

Commands

Command code Takes Parameter Description
: Yes Print with no formatting
; Yes Print ascii equivalent of the inputted integer
. Yes Stores the argument into the current operator's value. If it is a character, it gets its ascii value
+, -, /, *, % Yes Will perform their respected operation on the current operator's value and the referenced operator's value. For example, +1 will add the second line's operator's value to the current operator's value
| No Halts current operator
~ No If the operator's value is 0, continue. Otherwise, wrap around the line

References

Character Description
$ Does not do anything. Instead is used to reference the current operator's value
% Reference to next item in STDIN. It can take in a single letter or an integer
@ Reference to the next item in STDIN. This command converts the next character to its ascii value

Strings are denoted between quotation marks.

Programs

Here are a few programs in this esolang.

Hello World

:"Hello, World!"|

Cat program

.@;$~|

Truth-machine

.%^:$~|

Fibonacci Sequence

.1^:$+1
.0^+0:$

Factorial Calculator

.%^ -1 ~|
.1|
 ^.0+3*0~+3:$|
.1^*0  ~|

Implementations