refactoring: implement is_supported and get_output_filename in BaseCompiler