Hacker News new | ask | show | jobs
by d33 1251 days ago
Just curious, is .pl the standard extension for Prolog programs? Why would Perl and Prolog choose the same one, instead of one using e.g. .pg?
4 comments

Probably because few people used both.

.pro is also common for Prolog code, if you care about the extension clash.

.pro is also used by IDL and Qt. I imagine there are few two or three letter extensions that aren't overloaded.
Because .log was taken.
Fun trivia: I got a Emacs user to switch to Vim because in one of our class projects using Prolog, Emacs kept trying to highlight it as Perl (though it might be valid Perl syntax now that I think about it…). When I showed him that Vim did that for an empty file, but if it detected "Prolog-y" content (IIRC, the comment marker or a `:-` did it), it defaulted to Prolog highlighting.

No idea if Emacs ever fixed it (this was 2009 or so).

This is a trivial fix for an emacs user. M-x prolog-mode.
Instructions unclear, pinky finger fell off.
> instead of one using e.g. .pg?

Why not just `.prolog`? In this day and age. (Maybe there’s some reason like “then I can’t put these source files on FAT filesystems”, I don’t know.)

Java seems to do fine with it’s longer-than-three-letters `.java`.

Most editors will understand .prolog, but on the other hand it's 15 years older than perl and it's not hard to teach editors to treat .pl as prolog.
.pl is used because prolog is really old and FAT used to enforce extension limits. Not relevant nowadays, but it's stuck around.
FAT is 8 + 3, so it still had space for .pro as well.
Prolog is older than Perl. Perl usurped the .pl extension. Some are trying to claim it back.
Yes, it looks like modern Prolog systems using ".pl". I checked Ciao, GNU Prolog (which recognizes ".pl" and ".pro"), SICStus Prolog (also ".pl" and .pro"), SWI-Prolog, and B-Prolog.

The documentation for SWI-Prolog 5.10 (2010) even says "Tradition calls for .pl, but conflicts with Perl force the use of another extension on systems where extensions have global meaning, such as MS-Windows. On such systems .pro is the common alternative." https://www.swi-prolog.org/download/stable/doc/SWI-Prolog-5.....

Thing is, I can't confirm that tradition predates Perl 4 - call it 1993.

Turbo Prolog used ".pro" in the late 1980s - https://archive.org/details/bitsavers_borlandturOwnersHandbo... .

So did Prolog-2, according to the 1990 book at https://archive.org/details/advancedlogicpro0000unse/page/80... .

VPI Prolog from 1991 has an '".hc" file name extension (which stands for Horn Clause, the logic upon which the PROLOG language is based).'.

I even found one Prolog system from that era using ".txt", at https://archive.org/details/programminginpro0000cloc/page/26... .

The 1978 DEC10 Prolog user guide mentions PROG.PL as an example of a Prolog file with an extension. See 3.2 in https://userweb.fct.unl.pt/~lmp/publications/online-papers/U...

Maybe the 1975 Prolog I manual has more to say...

A less common extension is .pro.