Классическая проблема при работе с большими файлами - это просто чтение их в первую очередь. Многие стандартные библиотеки стремятся прочитать весь файл в память / массив. Однако для действительно больших файлов это обычно не практично.
Для того, какой язык вы в итоге выберете, внимательно изучите библиотеки ввода / вывода и выберите метод, который позволит вам читать файл в виде фрагментов. Затем запустите свою логику разбора на чанки, и когда доберетесь до конца чанка, прочитайте следующее. Будьте осторожны с логикой синтаксического анализа, иногда бывает сложно обработать чанк, когда он заканчивается в месте, которое не ожидает ваш анализ.
Кроме того, система с двойным буфером иногда работает хорошо. Обработайте один блок, и когда вы приблизитесь к концу, вы заполняете другой буфер следующим блоком. Если ваш синтаксический анализ требует значительных ресурсов процессора, вы можете даже посмотреть на заполнение буфера в другом потоке, чтобы перекрыть файловый ввод-вывод с анализом. Однако я бы не стал делать это первым. Начните с простой работы логики перед оптимизацией производительности.