|
|||
Colaiste Cholmcille, Ballyshannon, Co Donegal |
|||
|
|||
Andrew Anderson | |||
|
|||
![]() A small bit of information on linguistics is needed to highlight the problem that this project addresses. There are two broad categories of language: context-free and context-sensitive. In context-free languages each term has definite meaning regardless of context. Arithmetic notation, a very basic language displays this property: a plus always means add, wherever it occurs, even in the most complex and convoluted equation. Computer programming languages fall, for the most part, into this category. Some more complex languages, for example, English are not so clear. Many terms in English have different meanings depending on the context in which they occur. A language which relies on context to determine the meaning of a term is called context-sensitive. There are relatively few context-sensitive artificial languages. As computer languages advanced from simple maths to become more and more complex, it became clear that a system was required to describe them. These systems are known as formal grammars. A formal grammar is a simple language in which a more complex language is described. Grammars fall into the same two groups as languages. Each type of grammar is used to describe the same type of language. The best-known example of a formal grammar is Backus-Naaur Form. This grammar was invented for the purpose of describing a language called Algol-60. BNF is very clear and most computer languages in use today have a description written in BNF so users can see exactly what the language does. However, the downside to BNF is that it can only describe context-free languages, which are not very powerful compared to their context-sensitive relatives. Context sensitive grammars, however, are extremely complex because they must describe the various contexts in which every term in a language can occur as well as what the term should mean in every single one of those contexts. SLDL is a simpler and clearer method of describing context-free and context-sensitive languages, but it looks radically different from other grammars. It consists of an interpreter (written in C++) which reads a file which has a definition of a language written in SLDL. The interpreter alters itself so that it can run programs written in the language that the user has described. Andrew Anderson entered his project in the Senior Individual Section in the Technology Category in the BT Young Scientist & Technology Exhibition in January 2006. He won third place in this category and also won a Special Award sponsored by Science Foundation Ireland. His teacher was Mr John Kennedy.
|
|||