ANSWERS: 3
-
There is no hard and fast rule that dictates any of that. You are free to invent a new language on bespoke hardware, should you so wish.
-
1) High level computer languages should be translatable in lower level computer languages to be used on a computer. The task of writing a new computer language will involve a definition of the elements of the language and how the work together, but an other task will be to write a special program to translate the high level language in executable low level language instructions. The low level language is for instance assembly language or machine language. 2) "A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer. Programming languages can be used to create programs that specify the behavior of a machine, to express algorithms precisely, or as a mode of human communication. Many programming languages have some form of written specification of their syntax and semantics, since computers require precisely defined instructions. Some are defined by a specification document (for example, an ISO Standard), while others have a dominant implementation (such as Perl)." "All programming languages have some primitive building blocks for the description of data and the processes or transformations applied to them (like the addition of two numbers or the selection of an item from a collection). These primitives are defined by syntactic and semantic rules which describe their structure and meaning respectively." Source and further information: http://en.wikipedia.org/wiki/Programming_language 3) "A compiler is a computer program (or set of programs) that transforms source code written in a computer language (the source language) into another computer language (the target language, often having a binary form known as object code). The most common reason for wanting to transform source code is to create an executable program. The name "compiler" is primarily used for programs that translate source code from a high-level programming language to a lower level language (e.g., assembly language or machine language). A program that translates from a low level language to a higher level one is a decompiler. A program that translates between high-level languages is usually called a language translator, source to source translator, or language converter. A language rewriter is usually a program that translates the form of expressions without a change of language. A compiler is likely to perform many or all of the following operations: lexical analysis, preprocessing, parsing, semantic analysis, code generation, and code optimization." Source and further information: http://en.wikipedia.org/wiki/Compiler
-
Programming languages can even be written in the same language they are targetting. For example, I could write a Java compiler in Java, or a C++ compiler in C++. However, if the language is brand new, and has never existed before in any form, you need to use a different language to "bootstrap the process". For example, let's call your new language Zeta. Zeta doesn't look like any previous language, so you need to build a simple Zeta compiler in, say, Java, which supports the basic Zeta abilities. Then once you have that running, you can start writing you compiler in Zeta using the basic set of Zeta abilities. As your compiler is able to translate more and more of Zeta correctly, you can use these more complex features in the new Zeta compiler, which is written in Zeta. This sounds like a complex process and you might imagine that in some ways it would be a lot easier to write in a different language. But you'll find that this technique is used quite widely. For example the GNU C/C++ compiler is written in C and C++. The GNU Ada compiler is written in Ada, etc. As for equipment, a PC will work fine. And qualifications? Well, you need to understand how to write a compiler. You can take a course in a university or learn on your own. There are a number of good books on the subject... one of the oldest that most compiler writers use, is called "the Dragon book", but its real title is "Principles of Compiler Design". It's called the dragon book, because there's a cartoon picture of a dragon on the cover. There may be newer, better books out these days, but that is quite a good one.
Copyright 2023, Wired Ivy, LLC

by 