Wrong , he ' s that guy , you ' re him , I ' m you and they ' re them <| sep |> C programs must have a main function to be an executable . You cannot execute any program alone by default unless they ' re in an executable format . Remember that file name extensions are merely conventions , so programs don ' t need to follow a naming convention . Technically you can execute code in a . so , if you find a program to interface with it . But you should free your mind from the idea of only this type of file is able to be executed . A wide variety of execution paradigms exist already Bytecode , interpretation , JIT and AOT from VMs , etc . If you tried hard enough , you could interpret C code or run code inside a library or object file .