Sacha Qasim: Final

How humans interpret symbols versus how computers are designed to digitally transform information 

The transformative advances in computing are not just foundational on math and programming. The very core of computing stems from the “themes of representation and automatic methods of symbolic transformation”[1]. This paper will delve into the history and evolution of computational thought and how we interact with computing systems and how modern computing interprets code. All while understanding the symbolic system in the physical architecture of computing and how it prefaces human interactions.

The nativity of modern computing was enabled through generations of human consciousness and symbolic thought. The modern computer is a complex blackbox that continues to evolve into more advanced systems. For decades its capabilities are continuously being enhanced, producing the bodacious technical innovation that it is today.

Dr. Martin Irvine argues that “modern computers come from the same source as language, writing, mathematics, logic, and communication- capabilities that are uniquely human and uniquely symbolic”[2]. From cave paintings to artificial intelligence- how did we get here? Symbolic cognition is the prerequisite in conceptual orientation and abstraction. From the time humans are in the womb, and the brain begins to develop, immediately natural language processing is part of gaining understanding. It is instinctive for humans to be in the pursuit of the acquisition of knowledge; defining signs and symbols into meaning. 

Abstract concepts can be represented in a plethora of ways done by enabling symbolic thought processes in subjects such as science, philosophy, and anthropology. This is not only applicable to abstract nontangible items but to finite mediums that we can grasp and interact with such as musical instruments, playing chess, cooking, etc.

In the production of interpreting and generating new expressions, symbolic systems are what combine these procedures. The substrate of the systems can be identified in four applications as Dr. Irvine explains;

  1. Open combinatoriality: a core generative feature of a natural feature, and other symbol systems.

This is an advantage in creating new concepts, new and unpredictable situations, communicating them through a language community.

  1. Symbol systems have built-in features for abstraction and reflexivity.

Metafunction- Using symbols to represent, describe, interpret other symbols.

  1. Symbol systems are intersubjective and collective, enabling all things social.

Features that make symbolic language and task the primary means for communication. 

  1. Symbolic cognition externalized and off-loaded in media memory systems = formation of cultures and societies

How societies are formed. From writing, media, art, computer systems, digital memory.[3]

Below is a graph designed by Dr. Irvine depicting The Continuum of Human Symbolic-Cognitive Capabilities. 

This graph illustrates the progression of how signs and units have evolved through abstract cognitive thought, lending itself to modern-day computing. 

The provisions in the applicability to modern computing is formulated through cognitive technologies. The word “technologies” is broad as it is applicable to any tool that ameliorates human capability. Technology is not just limited to what is the cool, niche, high-tech gadget, but creative production through human design such as, fire, the wheel, the refrigerator, etc. The difference between general technology and cognitive technologies is that they are collectively in the computer science landscape. The objective of how it is designed represents human cognition. Computer science that mimics functions of the brain all is based on previous patterns in symbolic cognition. The implementation of how symbolic cognition is applied and the design of cognitive technologies are interchangeable. For obvious reasons- humans are what design them. Current technologies are processing invisible archeology of human symbolic cognition- so much that we have normalized the humanoid designs in computer science such as Siri, Alexa, Roomba, and in extreme cases- Robot Sophia.

For instance, an iPhone presents the interface configurations and structure based on the “technically mediated symbol system but also serves as a metafunction”. “The iPhone as meta-medium: a medium designed to represent and process other media”.

The design of computing all begins at the binary structures of electronic cells and logic circuits. These logic circuits are switches in the architecture of computing guiding code to digitalize symbols: which have been ultimately imposed by human design. Meaning, computers have no logic. Through code, we have been able to implement key aspects of symbolism to computing structures by being able to distribute data by running source code files then “run” the binary code. This is the act of “interpreting” data (which is not truly the ability to interpret but the through layers of design that have been assigned in early coding). The information has collected enough data to project outputs in pixels, audio, and other mediums that cater to our human interpretation. This computing process is designed to be partial semiotic agents through the lens of collective symbolic cognition and shared symbol systems that are familiar and recognizable to human interpretation. 

Below is a graph of how binary code is placed and is congruent to the symbols we use daily. Binary being only true or false, 0 or 1 switches, there are divisions of one or the other, but until gates are implemented AND and OR gates will begin to factor, helping further data implementations. 

https://forums.newtek.com/showthread.php/143290-Boolean-Data-Type-and-Comparison-and-Logic-Gates-nodes

On how the computer is designed to “meaning preservation”, Denning and Martell explore the meticulous enabler in computing data; 

“When we dig a little deeper into how a machine transforms inputs, however, we can see an important aspect of the design of a program that we call ‘meaning preserving’. Consider the addition of two numbers, a and b. What does it mean to add two numbers? It means that we follow a series of steps given by an addition algorithm. The steps concern adding successive pairs of digits from a and b and propagating a carry to the next higher pair of digits. We have clear rules for adding pairs of numbers from the set {0,1,2,…, 9} and producing carries of 0 or 1. As we design a program for the algorithm we pay careful attention that each and every instruction produces exactly the incremental result it is supposed to…

In other words, the design process itself transfers the idea of addition from our heads into instruction patterns that perform addition. The meaning of addition is preserved in the design of the machine and its algorithms. 

This is true for any other computable function. We transfer our idea of what it means for that function to produce its output into a program that controls the machine to do precisely that. We transfer our idea of the meaning of the function into the design of the machine.

From this perspective the notion that machines and communication systems process without regard to the meaning of the binary data is shaky. Algorithms and machines have meanings implanted in them by engineers and programmers. We design machines so that the meaning of every incremental step, and output, is what we intend, given that the input has the meaning we intend. We design carefully and precisely so that we do not have to worry about the machine corrupting the meaning of what we intended to do…” 

Ultimately computation is code that is data-driven and displays as so through information representations. Peter Denning emphasizes computer science being “the study of phenomena ‘surrounding computers’ and returns to ‘computer science is the study of information processes’. Computers are a means to implement some information processes. But not all information processes are implemented by computers — e.g. DNA translation, quantum information, optimal methods for continuous systems”. [7] 

Through these computing and code are blackbox systems that are comprehendible to us through a series of symbolic layers of design and precise calculations. Language and art are at the forefront of these complex designs in our modern computing. Often we pursued math and science, this would not be possible without the continuum of language that has been enabled through human interpretation and being able to translate that into data, that feed commuting, software, and technology. These are practices that have been mitigated into what is most efficient and will continue to evolve appropriately as human cognitive abilities do so as well. 

A more applicable example of seeing how symbols evolve into better interactions with websites is through programming languages such as HTML, CSS, and JavaScript. Through many processes, a computer program is a guide to a computer to will be utilized as a set of instructions that are to be executed through the code. Such programming instructions are called statements. Which both HTML and JavaScript use the web browser in order the be executed.

How are HTML, CSS, and JavaScript designed to facilitate symbolic capabilities that we use? The ability to create two-dimensional frames with text, images, design are all coded through HTML, CSS, and JavaScript. The better designed, the more appealing it is for us to utilize regularly. With attractive and easy designs for interaction, a web design can lead to psychological dependency- addiction. Many social media i.e., Twitter, Instagram, Facebook all use the slot machine interface which is meant to draw in a user through “ludic loops” which are “cycles of uncertainty, anticipation, and feedback.”[1] It is important to acknowledge that anything that is digitizable can be represented in the two-dimensional substrate of the pixels. Including it changing and transforming by using software that can cut, paste, change the colors.

HTML and CSS:

First, HTML, CSS, and JavaScript are all files that use text editors. Within the files, each of the keywords that have specific meaning and functions that the browser is able to process the way we intend it to. 

Hyper Text Markup Language (HTML) is the standard programming tool to implement the language in creating a website. It is structured so that it can detail the data to the website through a series of elements and symbols as previewed earlier in this paper. An element is what defines declarations in the HTML code. The elements is what display the content onto the browser- whether it is Chrome, Firefox, Safari, etc. Without the elements, the browser determines how to display the content on the website.

Image: the skeleton of an HTML code.

Once the HTML content is programmed into the system, one will then use Cascading Style Sheets (CSS) language to guide the HTML code in how to be displayed on any particular device. Specifically, CSS is the definitive source in how to style a website with features enhancing the design, layout, and other variations of the display to accommodate a plethora of devices the website will be accessed through. Without CSS, HTML was becoming much more tasked for web developers as the aesthetics had to be added with the content of the website too. CSS relieved the HTML developers (also called front-end engineers) to focus on content and leave the aesthetic and major design elements to CSS.

Image: an example of CSS code implementing color, font, alignment, and sizing.

Another simple version seeing how CSS code works-

This image displays each of the values and the declaration that are guiding CSS. 

JavaScript:

JavaScript was invented by Brendan Eich in 1995 and became standardized in 1997. JavaScript is essential for web developers to learn along with wit HTML and CSS. 95% of all websites use JavaScript in the deep interface of their websites. How JavaScript travels with HTML files and enables on the fly coding activity that we are accustomed to. JavaScript is designed to eloquently determine interactions on any device; iPhone, desktop, tablet, etc.

JavaScript is designed to distribute computational load things that take more processing power. Not just fetching data but connecting to programs and analysis that take more computational power that can be used on the web server side, not solely to serve a local device. JavaScript programs many types of platforms when knowing what it will be connected to i.e., streaming media; that takes a lot of computational power. What the processing power will be on the streaming side and that it matches the capability of the client device.

JavaScript is capable of multiple features such as updating and changing HTML and CS code. Mainly it is able to calculate, manipulate, and validate data. Ultimately being the final step in designing a website adding more “logic” to the code through HTML and CSS elements. Therefore, JavaScript is much more dynamic and powerful than HTML or CSS as it is used to develop and manage large applications. But its main capability is to change HTML content, attribute values, hide and show elements. For CSS, JavaScript is able to change any styles. The browser knows it is JavaScript because of the specific file extension that is added to the code “app.js“. 

Image: JavaScript code for code art

 In this image, the JavaScript source code is displayed in how to develop art via code sourcing. 

This is the final image using all three languages; HTML, CSS, and JavaScript. 

The ultimate breakdown is how the web browser is able to analyze and process any data information by JavaScript to make it comprehensible to the human audience? The browser’s ability to understand JavaScript is a layered and complex system. For this example, I will use Google Chrome as the browser choice as it is what I am using currently and is the most widely used web browser. 

Image: an overview of how JavaScript works

The engine will take the string of code and carefully examine each symbol and character to match them to the implemented glossary. The engine will take any string of code and will tokenize it into an array of tokens. It is so specified, each element of the code is characterized. For example, if my string of code is; let x = 10. The engine will convert it into an array such as; 

Then, using this array of tokens, the Abstract Syntax Tree (AST) is generated by parsing. AST is the tree representation of the code source. This is a fascinating parallel to syntax trees in linguistics when we are breaking down sentences. Parsing is the key element in what defines each variable. 

Image: AST visualization

 Then Byte-code begins to generate which executes the code. Next Just In Time (JIT) compilation occurs and runs. The source code at this point has been compiled and being profiled. Specific to the Google Chrome V8 engine, Ignition completes the generation of the byte-code and profiling and at this point, the JavaScript code is up and running. Finally, “TurboFan is the optimization compiler inside V8, based on the info that Ignition collected, TurboFan starts to optimize the functions for better performance.”[11] 

In conclusion, advances in programming and technology all stem from symbolic and cognitive human connective behavior such as cave paintings, hieroglyphics, music, and much more. Through this paper, we examine the evolution of signs and symbols and how that advanced into binary code which became the foundation of computing. For computers to be is undeniably an exterior organ to us, the advances of programming have enhanced our affinity to these machines byways of aesthetically engaging platforms that are created by HTML, CSS, and JavaScript. After a foundational understanding of how these programs work the blackbox in how these source codes travel through so many blackboxes to be visible on this very screen deserves pause and admiration in the complexity of these systems. 

 

Citations:  

[1] Dr. Martin Irvine. The First Look at Recent Definitions of Computing: Important Steps in the History of Ideas about Symbols and Computing. 

[2] Dr. Martin Irvine. “Introduction to the Human Symbolic Capacity, Symbolic Thought, and Technologies.”

[3] Dr. Martin Irvine. Key Concepts in Technology: Symbolic Cognition and Cognitive Technologies.

[4] Irvine Youtube video. https://www.youtube.com/watch?v=FEnrsv_YTDE&ab_channel=MartinIrvine

[5] Dr. Martin Irvine. Introducing C. S. Peirce’s Semiotic: Unifying Sign and Symbol Systems, Symbolic Cognition, and the Semiotic Foundations of Technology.

[6] Dr. Martin Irvine. Intro to Symbol Systems, Semiotics, and Computing: Peirce 1.0”

[7] Peter Denning, Craig Martell. The Great Principles of Computing

[8] https://ihpi.umich.edu/news/social-media-copies-gambling-methods-create-psychological-cravings

[9] https://www.w3schools.com/js/js_intro.asp

[10] https://www.codecademy.com/learn/introduction-to-javascript

[11] https://medium.com/@mustafa.abdelmogoud/how-the-browsers-understand-javascript-d9699dced89b