В любом компилируемом языке, есть стандартные конструкции. Которые позволяют оперировать переменными. Алгоритмы + структуры данных = программы. А значит можно написать всё.
Мда...
Ну, во-первых компилируемых ЯП не существует.
Во-вторых компилируемость к рассматриваемому тобой вопросу не имеет никакого отношения в принципе.
В третьих, переменные (если ты подразумеваешь изменяемые переменные) тут не в тему - они не обязательны.
Ну и в четвертых - то о чем ты говоришь, называется вычислимостью и полнотой по Тьюрингу. Все полные по Тьюрингу языки эквивалентны в том смысле, что алгоритм реализованный на одном можно реализовать и на другом. Но тут есть нюанс - алгоритм это не приложение. Соответственно если взять два разных ЯП полных по Тьюрингу, то несмотря на то, что на обоих реализуется один и тот же класс алгоритмов, возможности в плане написания на них приложений разные. То есть могут существовать такие классы приложений, что они реализуемы на языке А но не реализуемы на языке Б.
Ну и частный нюанс - иногда корректность данных выдаваемых алгоритмом зависит от того, КОГДА (то есть за какое время) эти данные поступят на выход.
Так что вопросы программирования и возможностей ЯП не ограничиваются лишь полнотой по Тьюрингу.
И это я пока даже не начал говорить о человеческом факторе, а ЯП все же (за редким исключением) создаются для человеков, и этот фактор один из важнейших в программировании.