Today my intention is to relate this post to the science of computing. More importantly I will attempt to relate the theories explored by a computer scientist to that of a philosopher (and some of the following notes of philosophical pondering may have their theological implications, watch this space!)
Firstly I'd like to raise the notion of existence and identity to your attention. Within a computer, some entities are physical (like the processor, the RAM chips and the motherboard) whilst others are purely conceptual and immaterial (like the software, the algorithms and the operating system). Paradoxically a physical entity (like a CD-ROM) contains the immaterial entity (like the video game); therefore all the instruction for a computer game will be readable from a reflective disc-shaped piece of plastic! However we must realise that singed into the microscopic pits of a compact disc is not pictures, videos etc... But rather a base-two notation of files and software. This binary code is structured in such a way that the file allocation system of the targeted computer can translate the physical (ones and zeros) into a logical order (JPEGS, software, folders etc...) and actually make use of it. Everything required to reproduce the images and sound (a graphics card, a sound card, a processor with a decent pipelined architecture etc...) is within the computer, and the software on the disc, coupled with the computer's operating system, contains the instructions - the algorithms - to do such a task. A computer never thinks or reasons, it is just a machine - after all - that follows interpretable tasks. Computers are what we can refer to as finite-state automata, or rather two-way machines. Put it this way, presuppose there once was a healthy man who was able to walk and could read and understand the English language; if we were to give this man a sheet of paper that read: "walk to the local church" then he could do it, for he is equipped with such facilities to interpret and carry out such a task. However if this man was to apply reasoning then he could ask why or rather defend his right to do as he pleases - this is something a piece of automata will never do. Opinion is a by-product of thinking. This is strange as a piece of automata (like a computer) has a pseudo-brain entity (like a microprocessor) whereby its instructions are interpreted and carried out, by the rules of logic (like Boolean logic). Isn't the man's brain just like a biochemical microprocessor? This perspective of human cognition is called monism of the mind and matter, and infers that all thinking is the result of chemical reactions. Chemicals react, they do not reason - if monism is true then free will is a myth and you're driven by impersonal forces (read up on my article entitled "Is Free will a myth? Think Descartes..." please for more on this, you'll find it elsewhere on my blog!! I will now assume prior knowledge of it from this point onwards). Would you trust computer software that was just assembled by the interlocked system of nature (hypothetically, of course, unless you associate the binary with some pattern formation on some sort of animal or whatever)? No, software with an intelligent mind behind it would be far more trustworthy!
Furthermore the study of automatic computing has lead us to the design of algorithms. Algorithms are really just steps of the concurrent processes being contended with by a microprocessor, and are generally written in the notation of either a high-level programming language with scope for advanced syntactical structure (like C++) or a low-level programming language (probably mnemonic-type instructions like LDA 56, STR 47 etc... for inner-processor orientated instructions associated with the registers, the MAR, the MDR etc...) and can be written to sort, search, stack, queue and heap data as well as that of other tasks! Oftentimes an academic programmer will use big-O notation, whereby O is an algebraic constant, to compare these algorithms together, as many are different by means but are mutual in end results (just to give you a heads-up on how seriously this field of research is taken!). One thing we can see from algorithm design is that it is difficult for us to build software that tells a computer to compute a random number! We can try by assigning each number to a tick of a timer, and stopping the timer once an event is triggered, but that would only seem random! What is randomness? Some event with no actual cause, or rather is there a cause but the cause is not apparent or even consensually appropriate? The absolute constraint of the law of cause and effect for the physical objects of reality supports the first two of St Thomas Aquinas' five ways - and in fact Bayes (a Presbyterian church minister and avid fan of mathematics) devised a formulae that could imply constraints onto certain computable events (like allowing the sweat of one's hand to influence how a dice they throw rolls). Anyway, algorithms are usually written in the syntax of a high-level programming language (like one of the C languages), oftentimes follow an implementation methodology (like object-orientation) and are not what a computer really works with: this is where a complex piece of computer software called a compiler comes into play. A compiler forms what is called a lexical analysis on the code and this parses all the lexemes etc... and turns them into a base-two notation of the software, ergo the software is now compatible with the computer architecture of the targeted system (oftentimes compiled software is referred to as a binary file). This is akin to the translation of a Bible, or rather not? Translators such as those who work for Wycliffe can either perform a static (word-by-word or verbatim) or dynamic (tailoring the translation for the targeted culture) translation. Static translations can be difficult to comprehend (the difference in sentence structure between English and many Romance languages, like French or Italian, is great - for example in French there is the formal version of "you," viz. "vous," but there is also an informal version of "you," viz. "tu") therefore most people desire a more dynamic translation for their Bible (the NIV and the KJV are both written in English, but are very different in sentence structure and vocabulary). However a dynamic translation does have the potential to be flawed by theological bias, and it would be apt to say that when a compiler compiles it is doing a static translation by parsing tokens of entities and swapping them for other entities (semantic version of source code) - only a programmer is to blame for faulty software.
In conclusion all I can say is that this is a really brief introduction to the overlap between computing and philosophy (and perhaps theology). For further reading I'd avoid anything that portrays machines to be partisan-like creatures that rule the human race (that should always be classified as science-fiction anyway) and I would recommend reading up on the Church-Turing thesis (Alan Turing often wrote about hypothetical Turing machines, which parallel the operation of microprocessors to this day), anything factual about artificial intelligence (you may wish to check out the algorithm for a game of the "towers of Hanoi") and also anything to do with the relationship between mammalian cognition and automata! Who knows, maybe that French philosopher called Descartes was on to something when he proposed hi theory of the dualism of the mind and matter? It could imply that all human reasoning derives from an ineffant soul... Some basic neurology such as the association of the different lobes to functions of the human body, the cerebral hemispheres, the automatic nature of the medulla oblongata etc... may also be worth some of your time to read.
A blog whose primary function is to fill the gaping void between Christian theology and the sciences...
Wednesday, 9 January 2013
Computing and philosophy (and what this could mean for theology)
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment