Raymond Smullyan has written a good deal about self-reference. He has developed a remarkably simple method of getting self-reference in a formal system that permits quotation. The following version is derived from his Diagonalization and Self-Reference.

For any string X, say that the quotation of X, written *X, denotes X. Further, for any strings X and Y, if X denotes Y, say that AX denotes the associate of X, which is X*X.

Consider the string A*A. What does it denote? Well, *A denotes A, so A*A denotes the associate of A---which is A*A itself. So A*A is a self-referential string in this system.