Language: C++

(function() {
	'use strict';
	var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;

	var push = ArrayProto.push,
	slice = ArrayProto.slice,
	concat = ArrayProto.concat,
	toString = ObjProto.toString,
	hasOwnProperty = ObjProto.hasOwnProperty;

	var
	nativeForEach = ArrayProto.forEach,
	nativeMap = ArrayProto.map,
	nativeReduce = ArrayProto.reduce,
	nativeReduceRight = ArrayProto.reduceRight,
	nativeFilter = ArrayProto.filter,
	nativeEvery = ArrayProto.every,
	nativeSome = ArrayProto.some,
	nativeIndexOf = ArrayProto.indexOf,
	nativeLastIndexOf = ArrayProto.lastIndexOf,
	nativeIsArray = Array.isArray,
	nativeKeys = Object.keys,
	nativeBind = FuncProto.bind;

	this._ = {};
	var each = _.each = _.forEach = function(obj, iterator, context) {
		if (obj == null) return;
		if (nativeForEach && obj.forEach === nativeForEach) {
			obj.forEach(iterator, context);
		} else if (obj.length === +obj.length) {
			for (var i = 0, l = obj.length; i < l; i++) {
				if (iterator.call(context, obj[i], i, obj) === breaker) return;
			}
		} else {
			for (var key in obj) {
				if (_.has(obj, key)) {
					if (iterator.call(context, obj[key], key, obj) === breaker) return;
				}
			}
		}
	};

	_.extend = function(obj) {
		each(slice.call(arguments, 1), function(source) {
			if (source) {
				for (var prop in source) {
					obj[prop] = source[prop];
				}
			}
		});
		return obj;
	};
}).call(global);

(function(undefined){
	'use strict';

	var INPUT_TYPE = 'string';

	var INPUT_REGEXP_LIST = {};
	INPUT_REGEXP_LIST['string'] = /\w*/g;
	INPUT_REGEXP_LIST['number'] = /[-]?\d+/g;
	var INPUT_REGEXP = INPUT_REGEXP_LIST[INPUT_TYPE];

	(function init() {
		this.output = function() {
			console.log.apply( console, arguments );
		};
		this.stdin = process.openStdin();
		stdin.setEncoding('utf8');
		this.input_list = [];
		stdin.on('data', function(chunk){
			var result = chunk.match(INPUT_REGEXP);
			input_list = input_list.concat(result);
		});
		stdin.on('end', function(){
			fire();
		});
		_.extend( this, {
			input_number: function() {
				return parseInt( input_list.splice(0,1)[0] );
			},
			input_text: function() {
				return input_list.splice(0,1)[0];
			},
			has_next: function() {
				return ! input_list.length;
			}
		} );
	}).call( this );

	(function solver(){
		this.fire = function() {
			setTimeout( solve, 0, this );
		};
		function solve() {
			output( input_text().split('').reverse().join('') );
			if ( ! has_next() )
				setTimeout( solve, 0, this );
		}
	}).call(this);

}).call(global);

Compiler output:
a.cc:2:9: warning: multi-character literal with 10 characters exceeds 'int' size of 4 bytes
    2 |         'use strict';
      |         ^~~~~~~~~~~~
a.cc:56:9: warning: multi-character literal with 10 characters exceeds 'int' size of 4 bytes
   56 |         'use strict';
      |         ^~~~~~~~~~~~
a.cc:58:26: warning: multi-character literal with 6 characters exceeds 'int' size of 4 bytes
   58 |         var INPUT_TYPE = 'string';
      |                          ^~~~~~~~
a.cc:61:27: warning: multi-character literal with 6 characters exceeds 'int' size of 4 bytes
   61 |         INPUT_REGEXP_LIST['string'] = /\w*/g;
      |                           ^~~~~~~~
a.cc:61:40: error: stray '\' in program
   61 |         INPUT_REGEXP_LIST['string'] = /\w*/g;
      |                                        ^
a.cc:62:27: warning: multi-character literal with 6 characters exceeds 'int' size of 4 bytes
   62 |         INPUT_REGEXP_LIST['number'] = /[-]?\d+/g;
      |                           ^~~~~~~~
a.cc:62:44: error: stray '\' in program
   62 |         INPUT_REGEXP_LIST['number'] = /[-]?\d+/g;
      |                                            ^
a.cc:70:35: warning: multi-character character constant [-Wmultichar]
   70 |                 stdin.setEncoding('utf8');
      |                                   ^~~~~~
a.cc:72:26: warning: multi-character character constant [-Wmultichar]
   72 |                 stdin.on('data', function(chunk){
      |                          ^~~~~~
a.cc:76:26: warning: multi-character character constant [-Wmultichar]
   76 |                 stdin.on('end', function(){
      |                          ^~~~~
a.cc:97:52: error: empty character constant
   97 |                         output( input_text().split('').reverse().join('') );
      |                                                    ^~
a.cc:97:71: error: empty character constant
   97 |                         output( input_text().split('').reverse().join('') );
      |                                                                       ^~
a.cc:1:12: error: expected ')' before '{' token
    1 | (function() {
      | ~          ^~
      |            )
a.cc:53:2: error: expected unqualified-id before ')' token
   53 | }).call(global);
      |  ^
a.cc:55:10: error: expected ')' before '(' token
   55 | (function(undefined){
      | ~        ^
      |          )
a.cc:103:2: error: expected unqualified-id before ')' token
  103 | }).call(global);
      |  ^