low-level programming, redesigned.

Hydrogen Language is a single-file syntactic layer that reshapes C into a more readable and understandable language. It uses intuitive keywords, functional programming patterns, and seamless cross-platform abstractions, which have all been continously iterated and improved upon.

H lang is a free, open-source, easily legible way to program.

• • • • • • •
start
{
	file f = open_file( "input.txt" );
	if_nothing( f.handle )
	{
		print( "Failed to open file\n" );
		out executable_failure;
	}
	
	byte input[ KB( 10 ) ];
	byte ref in_ref = input;
	file_load( ref_of( f ), input );
	
	byte output[ KB( 10 ) ];
	byte ref out_ref = output;
	
	check_input:
	{
		with( input_ref )
		{
			when( ' ', '\t', '\n', '\r' )
			{
				input_ref = input_ref + 1;
				jump check_input;
			}
			
			when( 'E', 'e' )
			{
				val_of( output_ref ) = '3';
				output_ref = output_ref + 1;
			}
		}
	}
	
	file_close( ref_of( f ) );
	out executable_success;
}
					

The entire thing has been continuously iterated on, reviewed by peers, adjusted, and tweaked to ensure that it is as readable as possible, even to people who do not program. If a programming language takes extra effort to decypher while reading then it is more prone to having errors and bugs. Understanding exactly what the code is doing in the shortest amount of time possible is extremely important. Vague symbols found in other languages are transformed into self-explanatory functional terms, making code readable without the need for comments. Comments should only say what the code isn't saying, adding to it. They should never describe the code itself.

H lang allows you to write expressive platform-agnostic low-level code that compiles everywhere.


download H

Maecenas lobortis odio et dapibus maximus. Praesent pharetra dui tincidunt, cursus lorem at, lobortis augue. Mauris rhoncus dictum sem quis euismod. Proin pharetra porta felis placerat ultricies. Quisque sed viverra velit. Vivamus vel eros non nibh condimentum convallis vitae ut nulla. Morbi gravida est vitae nulla fermentum maximus. In tristique cursus sollicitudin. Nulla fermentum hendrerit euismod. Sed euismod ipsum sit amet rhoncus lacinia. Aliquam ac metus dapibus, eleifend purus vel, iaculis arcu. Pellentesque ornare volutpat neque sit amet aliquet. Suspendisse mattis mauris at tortor gravida vulputate. In leo ex, ornare id ornare quis, molestie sit amet elit. Fusce a enim nisl.


H tools

Nam suscipit suscipit purus, feugiat dictum dui. Sed scelerisque, quam nec aliquet ornare, felis ipsum sodales lorem, lacinia maximus nibh nunc sit amet mi. Pellentesque ut pellentesque lorem, ut placerat justo. Vivamus sed mi sapien. Pellentesque vel elit a mi posuere dignissim. Donec sit amet massa accumsan sapien pretium convallis. Ut dolor dolor, blandit non lobortis nec, congue et neque. Nunc justo ex, scelerisque vel justo ut, lobortis posuere diam. Duis ac convallis dolor, et suscipit purus. Sed quis mi nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Quisque dapibus leo at orci pharetra, sit amet pharetra odio molestie. Integer pretium dolor a nulla rhoncus, vitae dictum tellus varius. Phasellus tortor ligula, vulputate at quam quis, pretium lacinia mi.


H community

Nulla non quam maximus, feugiat tortor sit amet, consequat tortor. Nullam vel leo a nulla vulputate malesuada. Pellentesque non nisi urna. Nullam pretium massa sed iaculis consectetur. Maecenas eu laoreet ipsum. Donec nisl odio, posuere scelerisque interdum in, sollicitudin id ipsum. Curabitur gravida sapien purus, et fringilla odio tempus imperdiet. Proin efficitur purus et ante gravida, in posuere lectus pellentesque. Nullam neque massa, ornare quis eros non, porta tincidunt justo. Quisque quis ultrices velit.


TYPE*TYPE ref
&VARref_of( VAR )
*REFval_of( REF )
||or
==is
(TYPE)VARto( TYPE, VAR )
x ? A : Bpick( x, A, B )