Какие существуют алгоритмы для раскрытия скобок в выражении?
Польская запись немного проще, рекурсивный спуск позволит работать с деревом, если хотите не просто вычислить, а сделать какие-то преобразования. Примеров кода и описаний для каждого из алгоритма навалом в интернете.
Да распарсите это дело в AST и освобождайте от чего хотите. Можно, например, расчитать константные выражения (заменить (3 + 4) на 7). Скобки убрать еще проще - если у узла один потомок (выражение в скобках) - заменить текущий узел на потомка.