1. you can define keywords, operators, grammar rules, general concepts endorsed by the language, etc.
2. do your worst
3. we are starting from the ground up, so it is prohibited to import complete keyword sets from an existing language (no OK, ALL JAVA KEYWORDS, THREAD OVER, HURRRRRRRRRR)
4. and we need a name for this language as well
Name:
Anonymous2006-07-09 2:35
Make it stictly OO.
Name:
Anonymous2006-07-09 2:38
Er, isn't brainfuck more or less the worst programming language ever?
Variables must be preceeded with a dollar sign
*rimshot*
Name:
Anonymous2006-07-09 4:14
Prefix global variables with @@, and class variables with self. Whitespace is significant. Typing is entirely static, except for globals. Overloading is mandatory. Memory-handling is explicit stack manipulation.
Name:
Anonymous2006-07-09 7:13
make an enterprise edition
Name:
Anonymous2006-07-09 8:49
Yes, it must be massively overengineered.
To make up for the shit static typing, make 50 different types of iterators. Don't allow default values, and all library calls require use of imported constants, not integers.
Name:
Anonymous2006-07-09 11:16
Use a different syntax for assigning objects vs assigning primitives, eg: set foo = bar '//object
a = b '//primitive
Let objects have a default field which is referenced automatically if you use a = b, so instead of throwing an error it just gives weird hard to track bugs.
Arrays are indexed from 1, except for certain library functions.
Name:
Anonymous2006-07-09 11:24
Line numbers. No flow control other than IF and GOTO. Static typing. Hungarian notation is mandatory as it's actually part of the language. Variable names limited to 4 characters besides prefix. No automatic conversion from one type to another. Variables are global by default. No structures nor objects. No user-defined functions; must use either eval() (eval still requires line numbers!) and a special hack to receive function parameters in an array. If functions want to return something, they need to use one of a set of global stacks (there's one per each different data type). Explicit memory management with segmented memory (segments are 4 KB each, can only allocate segments, variables can't span over several segments). Arrays are actually variable variables, so ia[1] is the same as ia1 and i[a] is the same as ia. Lines limited to 80 characters. No string literals; must use hexadecimal. Most syntactic elements are optional and infered by "DWIM" rules. For example, you can type "+", and it means add 1 to i_, because + is usually used with integers; on the left we use i_ which is the default integer variable; on the right we cannot use i_ because we already used it so we use 1 (because 0 would have little sense). User must learn all of this to use it.
Name:
Anonymous2006-07-09 12:32
can't... java
Name:
Anonymous2006-07-09 21:06
Code is compiled against a proprietary suite of large, slow libraries, using the proprietary compiler.
Name:
Anonymous2006-07-10 2:18
The only characteristic of viagra: makes your penis erect, therefore it makes it bigger. The only thing that gets bigger in programming that I can think of is a unit of measure.
Obviously we must ignore all other units of measure and make VIAGRA synonymous with bytes. Allocate VIAGRAs of memory.
Name:
Anonymous2006-07-10 5:22
If we have VIAGRA, we must have SEX.
A language that makes casting integers to longs implicit is too easy. We must make any such operation explicitly require the SEX (Sign EXtend) operator.
The opposite (long -> int, int -> char, etc) is the entirely arbitrary BOBBITIZE.
Name:
Anonymous2006-07-10 6:59
All arithmetic operations must be written in either prefix or postfix notation. Only both notations can be used; the compiler determines weather prefix or postfix has been used in any given expression.
Eg: the expression 3 + 5 * 20 / (7 - 2) can only be written as
/ + 3 * 5 20 - 7 2 (prefix) OR
3 5 20 * + 7 2 - / (postfix)
Also, compiler errors should return line numbers in binary, and the actual error descriptor should be in the form of a short riddle.
from >>38
main features:
line numbers
hungarian notation
no whitespace
no functions (only gotos, arguments are passed with global library variables)
all numbers must be in octal
string encoding is EBCDIC
strings use single quotes, not double
no comments allowed
variables are pointers
too late i realized that all caps must be used, no lowercase
finer points:
keywords are used with the form: keyword[thing being modified by keyword]
if-statements work thus: if[line number to jump to if false]statement to test
assignation goes: value to be assigned :== where to assign it; backwards of most languages
testing equality also uses :==
for initializing nulltermstringBottlesOfBeer, i showed how you could use NulltermstringLength, but for the other strings i just coded the size directly cause it's easier (in this case)
keywords so far:
inport (not import)
variable
dereference
goto
Been done already. See INTERCAL for an example. Numbers are input as two decimal octets, there's COME FROM, you have to say PLEASE in the source often enough, file input and output occurs in roman numerals. (or was it ONE TWO NINE THREE SEVEN and so forth?) Conditional execution of code happens by suspending and reinstating execution of certain COME FROM and/or other lines.
INTERCAL isn't the worst language. Malbolge is, or would be if someone hadn't done a cryptanalysis.
Name:
Anonymous2006-07-12 12:15
>>9
i am a poor c-tard, explain how these 50-odd iterators would work for me?
more ideas:
the parsing of nulltermstrings will be done by functions like NulltermstringToUint, which will take the uintNulltermstringToUintSource'th character of nulltermstringNulltermstringToUint and place it in uintNulltermstringToUintDestination.
however, there will also be a stackstring datatype in which strings are uints stored on a stack. stackstrings can then be parsed by popping between stacks, analysing and modifing as we go.
(and now that we've defined string handling functions, we can write quines!)
obviously, converting between types is not automatic, but must be done with functions. uintNumber:==sintNumber is an error, we must use the UintToSint function.
allocating memory has been done, and i like the idea of using strictly segmented memory, and allocating only single segments, but the segment size should probably be something more like 256 (or 16?) bytes rather than 4K, as this would make string handling much more difficult.
another thing that should be worked out is memory deallocation. should this just use another function (e.g. free() in c), or can we come up with a better method?
oh, and we should probably have a method of self-modification.
finally, we still need a name for this language. i've been calling it 4code as a working name, but that's not a very impressive name
all keywords and functions will start with either l (L) or I (capital i) followed by five numbers. bracket equivelents in C will be } to open a block and { to close it. line comments begin with #\#/* . there are no block comments. also, things must be indented with 9 spaces AND have the brackets.
everything must have a ! at the end of it. variables are referenced in strings with $[variablenameq
I98276! l39732!(l82765!) } #\#/* defining a function
I32948! l82765!; #\#/* print the argumnt
l202834! = l298376!();
I32948!("HELLO $[l202834q");
{
l39732!(!"hay wats ur name?!");
Name:
Anonymous2006-07-15 2:26
It's just like java, except you have to write every thing in binary..
I call it OOH Binary!
Name:
Anonymous2006-07-15 13:35
ALL FUNCTIONS ARE ANONYMOUS
ALL STATEMENTS MUST BE WRITTEN IN UPPER CASE. TYPING IN LOWER CASE WOULD BE A SYNTAX ERROR BECAUSE AS EVERYONE KNOWS CAPS LOCK IS CRUISE CONTROL FOR COOL.
Name:
Anonymous2006-07-15 14:21
FCOOLS - FourChan's Object Oriented LanguageScript.
Particularly evil because we never implemented anything OO. And wtf is LanguageScript? But anyone who takes it at face value will be like "damn how sweet is that?" and start coding.
That or wappascript.
Name:
Anonymous2006-07-16 3:16
>oh, and we should probably have a method of self-modification.
this is a REQUIRED FEATURE of this language, for sure!!
explicit support for self-modifying code
proposal:
there is a pseudovariable/function that returns the address of the "program counter" or currently executing instruction. something like "instrptr"
there is another (library?) function that takes a block of code as an argument and returns its machine language opcodes.
using these and function pointers we could have a lot of fun. buffer overflows would actually need to be necessary parts of your program.
Name:
Anonymous2006-07-16 13:21
the letter E inside a string causes the remaining part of the string (until Q for Quit) to be evaluated as program code. there is no way to disable this other than to escape those letters with four backslashes.
Name:
Anonymous2006-07-16 22:28
To program in the language, you must first define all commands you will use. To define them, you must only use the language you are writing in. Therefore, the code will reference itself. There is only one pre-written command, which is to store the information in a random (even if it's already in use) memory location. There can only be one memory location in use by the language at a time. It will be hailed for its space-saving capabilities, and forced on all programmers.
Name:
Anonymous2006-07-16 23:38
MODS /B/ IS NOT WORKING PLZ FIX CUZ I LIEK /B/. KTHNKSBAI.
Name:
Anonymous2006-07-19 19:32
All types are objects, and all variables are pointers. All operators are called exactly the same way functions are. For example, to add x to y:
x->+(y);
Furthermore, there is no heap. There is no such thing as a return value for a function, but rather, what is returned is the object called; i.e. the above code returns the pointer to 'x'.
So to perform (x+y)/(u-v) and store it in z, you do:
int a,b,z; (z->+((a->+(x))->+y))->/((b->+(u))->-v);
Name:
Anonymous2006-07-19 19:33
*stack
Name:
Anonymous2006-07-19 19:34
Oops, also forgot function brackets around y and v. Oh well.
>>46
Too easy to comprehend, uses already existing syntax.
Name:
Anonymous2006-07-21 9:35
All characters are in morse code.
Name:
Anonymous2006-07-22 23:09
lol. I like that Idea. Otherwise...
OPERATION AND RECALL LEAP-YELLING (aka ORLY)
This is the language used by SONY on their music/data CD's
A sample page looks like this:
>>hay_guys !!!
--what.happen.?
>>set *bomb* if chance < 0
--launch zig.drm
>>terminate if (cat > 999|divide < -1)
--talkback +tracert {infinite loop}
>>reboot if (tits|gtfo)<1
Name:
Anonymous2006-07-22 23:17
I think we should design a number system which will be based on syllables. 1,7,11,27,107,117, etc
And do it backward. Also, I like >>18's idea of syntax errors in the form of a short riddle. But perhaps they should be in the form of a small dose of ritalin, just to keep the programmers on the edge.
>>57
i'm american, but i say 'a hunnerd seven', i think i say 'one hundred seven' when i'm trying to speak clearly.
but from a bad programming language standpoint, this is a feature. some compilers use the 'and', and some don't. no bad programming language should have good cross-compiler portability
Name:
Anonymous2006-07-25 19:03
>>58 but from a bad programming language standpoint, this is a feature. some compilers use the 'and', and some don't. no bad programming language should have good cross-compiler portability
I stand corrected.
Name:
Anonymous2006-07-26 9:01
>>58
Then 77 would be the portable way to write it, but you'd be out of luck for anything higher.
There's a version of intercal where everything is written in trinary.
Name:
Anonymous2006-07-27 14:39
>>65
it should be negative unary, so you can represent negative numbers without having to use a pesky negative sign. i.e. 0 = 0, 00 = 1, 000 = -1, 0000 = 2, 00000 = -2, etc.
ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER! ALL HAIL KING BOOKER!
Anything .NET. VBScript, JScript, whatever. Just fucking sucks.
Other than that, let's see you one needs to make a really bad language..... You would need to use multiple file types that achieve mainly nothing, or not much. So let's go with .f for functions and classes, and .i for their implementation, and .head for globals
Variables created in their implementaion files (.i) can only be (re)used in that same file. i.e Variable q is created in imp.i, can only be used in imp.i . Exception: if q is a global, declared in a .head file.
What else...
The language is only ported to Fedora Core 2 (Linux), and is oddly still being heavily developed. There is no garbage collection, and everything instantly demands 90% of your availible system resources.
Creating an executable is nearly impossible; you have to give the compailer random, useless flags just to create a .compiled file, which in turn then needs to be compiled into the final executeable.
you must start EVERY line of programing with four arrows >>>>
and comments are written like this:
/BEGINING_OF_A_SINGLE_LINE_COMMENT/this is a comment/ENDING_OF_A_SINGLE_LINE_COMMENT/
Name:
Anonymous2007-07-06 21:16 ID:APpULTHM
and certain commands should only work 27% of the time XP
Name:
Anonymous2007-07-06 21:47 ID:HwxuKK9s
cbf to read entire thread
forced indentation of code is a must have
Name:
Anonymous2007-07-07 9:00 ID:BBvas4ZD
No variables, Instead, you must allocate memory addresses manually. Additionally, you can only allocate data to one byte at a time.
Here's what I got:
* calls a numbered primitives.
@ calls a value on the stack.
[ defines a function.
~ within a function defines arguments.
$ calls a function.
^ is an if statement. In needs to be followed by at least one [] block.
% is else.
*0 = eqauls
*1 = plus
*2 = minus
*3 = mult
*4 = div
*5 = mod
*6 = ==
*7 = >
*8 = <
*9 = ||
*10 = &&
I once implemented this. It's insanely easy and really satisfying.
Factorials:
!this defines a function on the 0 place on the function stack with the ability to calculate factorials
!there are already no need for parens because it's polish notation
[ 0 ~0 ^(*10 @0 0) [ # 1 ] % [ # *3 @0 $0 *2 @0 1 ] ]
!this is how you call it
$0 5
returned 120
Name:
Anonymous2010-06-26 15:42
>>47
A programming language requires stacks to be Turing compatible.
No language is complete without an interpreter!
Programs are given names that are capital Cyrillic letters. Examples: ф х ц ч ш
The interpreter requires all instructions to be ASCII binary text and since no program can be over 100 characters (800 bits), a call to another program is given by ~H which means "Stop running this program immediately, copy the stack, etc and start running Program ц". These two features should increase complexity.
Name:
Anonymous2010-06-26 16:50
The completed executables have 2gigabits of header that is TOTALLY USELESS
Name:
Anonymous2010-06-26 16:56
>>103
Don't make it useless, make the header contain the program code repeated 9 times so that you can check whether data was corrupted before executing.
>>105
I was a reader of esolang after Malbolge was invented but before any programs were written for it. This thread started when Malbolge was 8 years old and the most interesting program anyone was able to produce was a broken version of cat. When it comes to essies Ben is a bit of a genius.
You could conceivably make a worse language, but I doubt it will be anytime soon that someone makes one that is any of the following:
- not a mere derivative
- is worse in a way that is interesting
- creates that same kind of wasteland that needs crossing
Name:
Anonymous2010-06-26 20:34
MASO
A new language for modern computing.
I'm going to start off with some core features and their justifications:
1) ALL IDENTIFIERS MUST BE AT LEAST 20 CHARACTERS
Now that even consumer computers have gigabytes of memory, there is no justification for short identifiers. Everyone knows that code is only written once but read many times, so this rule eliminates confusing variable names like 'i' and 'x'.
2) EVERY LINE MUST HAVE A COMMENT
Self-explanatory.
3) EACH COMMENT MUST BE AT LEAST 30 CHARACTERS AND END WITH A PERIOD
This is to discourage programmers from circumventing rule (2) by making comments that only contain, say, a space.
4) EVERYTHING IS AN OBJECT
Unlike, say, C++, there a no 'primitive' types. This simplifies container classes, eliminates issues with boxing, etc.
5) EVERY OBJECT IS A DICTIONARY
Similar to Javascript and Lua, this simplifies the language implementation and provides run-time flexibility.
6) EVERY OBJECT DICTIONARY IS AN XML STRING
People already know XML and may already have editors that support XML. Performance might be a little worse, but performance matters for only around 10% of any given program and, as we all know, that part is written in C++ anyway, right?
7) ALL BINARY OPERATOR EXPRESSIONS MUST HAVE PARENTHESES
Should (a ^ b << c) be interpreted as ((a ^ b) << c) or (a ^ (b << c))? Just a few extra parentheses eliminate operator precedence mistakes.
8) THERE IS NO EQUALITY TEST OPERATOR
Rather than have confusion between '=', '==', ':=", etc, the equality test operator ('==' in C) is eliminated. If you want to see if A and B are equal, check if (!(A < B) && !(A > B)).
9) ALL OBJECTS MUST SUPPORT THE '<' AND '>' OPERATORS.
This is because of rule (8). Because operator overloading can be misused, overloading any other operators is prohibited.
10) ARRAYS ARE ONE BASED
Non-programmers might be involved in the production process and they are used to arrays that start at one. See Lua for additional reasons why this is a good idea.
--------------------
Operators and syntax
--------------------
1) OPERATORS
+, -, *, /, ^, and, or, not
note: to make the language more orthogonal, 'not' is a binary operator
2) FLOW CONTROL
if else, while, sometimes, don't
note: something in a sometimes block will happen some times and not others
note: something in a don't block will never happen, even if the same statements
appear elsewhere outside of a don't block
3) OTHER KEYWORDS
new, delete, start, kill, injure, maim
5) BLOCKS
There some controversy in the programming language community about significant whitespace. In MASO a compromise is reached: blocks must begin with a '{', but afterwords use significant whitespace (no '}' is needed).
6) STATEMENTS
Statements end with a '.', or a '?' or '!'. If they end with a '?' or '!' they can be referred to as "questions" or "exclamations".
--------------------
Example code
--------------------
#include <stdio.h>
There are only two usable variables: variable_number_one and variable_number_two. You have to use the stack for everything else. Function names can only contain numbers, and numbers are written in octal as "one hundred and fifty seven". It's strictly object oriented, and classes can't have more than two member functions and three variables.
>>108
Bump from oblivion for this epicnessnessness!
[implement-green-text]
>sitting in the office
>browsing /prog/
>come across this post
>laugh out loud uncontrollably several times
>no one in the office does programming
>can't explain what is so funny about a seemingly mundane subject
>more uncontrollable laughter
[/implement-green-text]
The code must be sung. Syntax and definitions revolve around lyrics. Functions are choruses, the verses are the initial running thread, programs are called songs, et cetera. But what to call it. VoiceCrack?
Name:
Anonymous2012-01-20 13:26
Python
class FORCED_INDENTATION_OF_CODE:
def __init__(self):
print "Look mom, a procedure without parenthesis!"
Name:
Anonymous2012-01-20 13:43
( main ) = ( do ( "HELLO" ) ).
( var ( $HI = "Hello, world!" ) ).
( if ( $HI ) ) ( do ( "PRINT" ) ).
( "%d".printf( $HI.to_s ) ).
( end ( "PRINT" ).
( return 0 ).
( end ( "HELLO ) ).
that was kind of fun
Name:
Anonymous2012-01-20 13:51
A combination of COBOL and SQL with higher-order functions. Each statement is a function and has its own syntax and set of clauses. Keywords are reserved in some statements but can be used as variable or function names in others. Some keywords are synonyms but have slightly different syntax to match English grammar. User-defined functions can also have their own clause types. The documentation only shows basic uses of the statements, never the full variants. The only error messages are "TOO MUCH ON MY MIND." (out of memory), "I THINK I CAUGHT A BUG." (unhandled exception or signal) and "SORRY, I DON'T UNDERSTAND." (any compile-time error).
LET DOUBLE OF X BE MULTIPLY OF X AND Y GIVEN Y EQUALS 2.
COMPUTE DOUBLE OF 10 GIVING V.
WRITE OUT V LEFT ALIGNED NO PADDING.
.----------------------.
V | (1) (2)
>----+------------------+-+------------------------------------><
+-update-clause----+
+-read-only-clause-+
+-optimize-clause--+
'-isolation-clause-'
where order-by-clause is:
.-,------------------------------.
V .-ASC--. | >>-ORDER BY----+-sort-key--+------+---------+-+----------------><
| '-DESC-' |
'-ORDER OF--table-designator-'
Ducks.
Ducks are TOURING-COMPLETE, they can swim across a (theoretically) infinite river in either direction, at each step they can catch a fish, take a dump, or quack.
Name:
Anonymous2012-01-21 2:03
scheme, but every identifier and number and string must be represented as a balanced nesting of parenthesis.
Take the C language and make assignment statements create Prolog-style choicepoints of execution when the variable was assigned and when it wasn't assigned, perform backtracking on segfault.
Name:
Anonymous2012-01-21 19:41
It should have the :: and := operators, and $ to say that the thing is a variable. Now it's unusable.
Kinda like COBOL except the keywords are the tokens of this phrase: reminds me of my friend she's about to die cause she has cancer and her favorite character on touhou was letty white ^_^ let's hope she'll live
Just write a random grammar+semantics generator. Bound to be painful to use. Limit actual functionality as much as possible, enough to be Turing-complete (comes very cheap, can do everything), and add a lot of functionality that do overcomplicated one-off things nobody needs or wants or will ever use, bonus points if you only make the parts that make the language Turing-complete into such functionality (such as jumps and conditional jumps). Make recursion as broken as possible to make the language nearly unusable, but not broken sufficiently. Optional high-level or functional constructs which nevertheless are hopelessly unususble due to artificial restrictions as to their use (not creative enough? Think FIOC!).
Obviously this is all an utter waste of time. A good Lisper or just any computer scientist knows that you can just take any language, no matter how bad and as long as it's Turing-complete(hard not to get this, unless you start adding some very arbitrary restrictions), you can just make a compiler from your favorite language to this "new" language and just use whatever you want to write your code in without being forced to suffer...
Lambdas are only one expression long. Indentation is enforced by the interpreter. Only one thread may run at a time. No TCO. Literals for everything in the core syntax. No way to add new syntax.
Unreadable shit. S-expressions. Parentheses everywhere. S-expressions. Indentation cannot be made significant. S-expressions. No way to improve surface syntax. Have to pick between three language flavours, one that features verbose-as-fuck macros, another that features different namespaces for functions and variables, and one designed by someone who thinks conj is a great catch-all name for adding things to collections. S-expressions. Parentheses all over the fucking place. Oatmeal with toenail clippings.
Bringing /prog/ back to its people
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy