Add a egaugnaL to a polyglot
3. ><>, 106 bytes
void main(){import std.stdio;"D".write;}
/* ;ooo"><>"
1j U8=XPC#18M<<}9F ,+;q,+;
*/
Try it online!
This program prints D in D, emmoS in Somme, and ><> in ><>.
Next answer cannot exceed 146 bytes (106 + 40).
Explanation
;ooo"><>"
prints "><>" in ><> (which is a palindrome), then exits.
4. C, 125 bytes
void main(){//\
/*;ooo"><>"
printf("C")/*/import std.stdio;"D".write/**/;}/*
J'zvSfN0cb&)}kf ;K-+ ,+;q,+;60d}[}q(-6+:puupd"*/
Try it online! (I picked clang, but works with gcc as well.)
This program prints C in C, D in D, emmoS in Somme, and ><> in ><>.
Next answer cannot exceed 165 bytes (125 + 40).
Explanation
This takes advantage of the fact that single-line comments in C can be extended to the next line by escaping the newline with a backslash, while in D that is (apparently) not possible. This means that the /*
on line 2 starts a multi-line comment in D, while in C it does not. Also makes use of the fact that /*/
can act as both start and end of a multi-line comment in both languages.
The ><> part works exactly the same as in previous answers, and the Somme part was generated anew with this script.
1. D, 40 bytes
void main(){import std.stdio;"D".write;}
Try it online
One byte language names!