C1R

{{language |exec=machine |gc=no |safety=unsafe |parampass=value |checking=static |compat=nominative |express=explicit |strength=weak |hopl=no}}{{language programming paradigm|Imperative}} '''C1R''' is a general-purpose, [[procedural programming|procedural]], [[imperative programming|imperative]] computer programming language, partially developed by André van Delft in 2011. It is a small extension to the well known [[derived from::compatible with::C]] programming language, allowing for very small programs that implement tasks that are implemented by C programs at RosettaCode.org.

C1R can also be regarded as an [[adaptive]] language, as the set of valid C1R programs varies with the C implementations for tasks at Rosetta Code.

The development of C1R has been inspired on the [[HQ9+]] and [[C0H]] programming languages. HQ9+ accepts "H" in its source to print "Hello World!". C0H improves over HQ9+ by offering the full power of the C language; moreover, C0H offers a shorter path to writing a Hello World program: just create an empty file. C1R allows the user to submit a text file with just a simple reference of a task implemented in C at Rosetta Code; that reference is the implementation of the task in C1R. E.g., the following C1R program


Hello_world/Text

does exactly the same as the C program listed at the "[[Hello_world/Text]]" page, namely print "Goodbye world!".

==Implementation== C1R is implemented using a Shell script that calls the C compiler. The script starts by testing whether C code should be downloaded from the Rosetta Code site. The Quine task is treated as a special case. See [[C1R Implementation]]

==Acknowledgement== When hearing of C0H, Jelle van Zeijl suggested to make a similar language based on downloading C code from the Rosetta Code site.

==Documentation== To get a reference document on C1R, it is advised to upgrade a reference document on the "C" programming language, and attach a Post-it note stating C1R is like C, except that in case it contains just 1 line that directs to a Rosetta Code URL with a valid C implementation.

{{language programming paradigm|Imperative}}

Tasks