.lf 1 - .lf 1 - .lf 1 stdin .lf 1 dblcol.tr .ds margin 0.35i .ds gutter 0.3i .\" (8.5i - 0.3i - 0.7i)/2 .\" (7.5i)/2 .\" 3.75i .ds column_width 3.75i .\" margin + column_width + gutter .\" 0.35i + 3.75i + 0.3i .\" 0.1i + 4i + 0.3i .\" 4.4i .ds column_offset 4.4i .ll \*[column_width] .po \*[margin] .fp - T R .tkf T 1 0 15 1 .fp - N R .ev 1 .ft N .ev .nr col 0 1 .de head . nr col 0 . po \*[margin] . ie \\n%>1\{\ ' sp 1.5v . ev 1 . tl '\h'\*[column_width]'\h'\*[gutter]/2u'\h'-\w'\\n%'u/2u'%'''' . ev ' sp 0.5v \} . el \{\ ' sp 3v \} . mk .. .de foot . ie \\n+[col]<2 \{\ . po \*[column_offset] . rt . ns \} . el \{\ . po \*[margin] ' bp \} .. .ps 11 .vs 13 .wh 0 head .wh -3v foot .lf 2 stdin .lf 1 fmt.tr .ad pb .ssh 15 .lg 0 .pmll 20 10000000 .ds numdash - .de date . if \n(mo=1 \{20\n(yr January \n(dy\} . if \n(mo=2 \{20\n(yr February \n(dy\} . if \n(mo=3 \{20\n(yr March \n(dy\} . if \n(mo=4 \{20\n(yr April \n(dy\} . if \n(mo=5 \{20\n(yr May \n(dy\} . if \n(mo=6 \{20\n(yr June \n(dy\} . if \n(mo=7 \{20\n(yr July \n(dy\} . if \n(mo=8 \{20\n(yr August \n(dy\} . if \n(mo=9 \{20\n(yr September \n(dy\} . if \n(mo=10 \{20\n(yr October \n(dy\} . if \n(mo=11 \{20\n(yr November \n(dy\} . if \n(mo=12 \{20\n(yr December \n(dy\} .. .nr shc 0 1 .de sh . post.mark "\\$*" 1 . ie \\n+[shc]>1 .sp 0.5 . el .br . ff I +lnum \fI\\$*\fP . ff I -lnum . br .. .de pg . ti +1 .. .blm pg .\" Macros used for English 101 research paper. .nr fg 0 1 .de stc .ff R +lnum . post.mark "Figure \\n+(fg" 2 Figure \\n(fg. .ff R -lnum .. .de enc . sp 0.5 .. .de caption . stc \\$*. . enc .. .de c2sc \fT\\$*\fP .. .de sbq . br . ll -0.25i . in +0.25i .. .de ebq . br . ll +0.25i . in -0.25i .. .de end . sh Who and When . ce 99 Kian Ali Agheli . post.url mailto:kaa@disroot.org kaa\@disroot.org . post.url https://kaa.neocities.org kaa.neocities.org . date .. .em end .lf 3 stdin .lf 1 font.tr .fp - R Brill-Roman .fp - I Brill-Italic .fp - T Brill-Roman .ff T +c2sc .tkf T 1 0 20 1 .fp - N Brill-Roman .ff N +lnum .lg 1 .ds numdash ‒ .lf 4 stdin .sh An Introduction Here's a slightly correlated set of essays I've written. References are provided in the style of the American Mathematical Society. This document is provided in \fTPDF\fP, \fTHTML\fP — mostly \fTSVG\fP, and plain textual formats. The \fTPDF\fP contains actual links at each reference, and a typeface much less exposed than Times New Roman. This document is selfish, though I'd be pleasantly surprised to receive either positive or negative feedback. My contact information is at the very end, past the long bibliography. .sh The Impact of the C Programming Language on the Past 50 Years of Computing The C Programming Language was initially developed between 1969 and 1979. It was further refined when standardized by the American National Standards Institute in 1989. In the twenty years between birth and standardization, C became the dominant programming language, shaping the environments it entered and the programmers who used it. In the time between .c2sc ANSI standardization and now, the majority of computing systems have been designed to leverage C. .pg A programming language is a format for expressing logic. The programming language that a computer natively understands, called an “instruction set,” is composed of minuscule operations. Across all kinds of digital computers, these allow for logical evaluation, performance of arithmetic, management of information, and general hardware control .post.url #25 "[Intel \fT23],\fP" .post.url #5 "[Arm \fT21],\fP" and .post.url #94 "[Waterman \fT19].\fP" .pg These instructions are expressed in binary digits, commonly contracted to “bits” .post.url #36 "[Mackenzie \fT80].\fP" Unlike a decimal digit, which may be a whole value between 0 and 9, a bit may be either 0 or 1. In digital computing's infancy, series of these were manually “toggled in” .post.url #60 "[Post \fT83],\fP" using physical switches and buttons. Save for theories put on paper, such as the works of Ada Lovelace .post.url #41 "[Menabrea \fT1842]\fP" and Alan Turing .post.url #89 "[Turing \fT36],\fP" this was the first form of computer programming. .pg As hardware and software both advanced, programmers became able to write programs textually. They would physically interact with a teleprinter, essentially a typewriter which would send key strokes to and print output from a computer. They would digitally interact with software to manage and store teleprinter input, naturally named “text editors.” Then, the stored input from the teleprinter would be passed to a program called an “assembler,” to further interpret the saved input. The textual representations of computer instructions, such as .c2sc “NOT A,” would be encoded as real computer instructions, such as “00100001 01101010” .post.url #54 "[Nelson \fT63],\fP" .post.url #71 "[Ritchie \fT99],\fP" .post.url #85 "[Thompson \fT71a],\fP" .post.url #86 "[Thompson \fT71b],\fP" .post.url #87 "[Thompson \fT71c].\fP" The text which programmers would provide to assemblers came to be called “assembly language.” .post.url #22 "\fT[IBM\fP \fT92].\fP" .pg Assembly language directly correlates to a computer's instruction set, meaning that the programmer must textually manage each operation in a program. Doing so is less tedious than flipping switches hundreds of times over, but still tedious .post.url #53 "[Nather \fT83],\fP" .post.url #60 "[Post \fT83].\fP" Computer scientists found that a computer may instead be provided a text which vaguely describes the intended logic of a program. Though the computer has been provided less information, it may have enough to produce a reasonable translation of the abstract program to its own instruction set. As opposed to an assembler, the software which performs this kind of interpretation is called a “compiler” .post.url #1 "[Aho \fT14].\fP" .PDF img/360.pdf L \*[column_width] .PDF img/tele.pdf L \*[column_width]+5m .PDF img/701.pdf L \*[column_width] .stc Top: the control panel of an early digital computer, designed to be programmed through the toggling of several switches .post.url #75 "[Shirriff \fT19].\fP" Middle: A Teletype-branded teleprinter .post.url #64 "[Reinhold \fT14].\fP" Bottom: A punch card, at a time the most economical method of storing program data .post.url #27 "[Jones \fT22].\fP" .enc .pg Compiling a program from an abstract — “high-level” — language is comparable to translating expressions from one human language to another: it may be done, loosely .post.url #1 "[Aho \fT14].\fP" With this loss in accuracy comes two benefits: programs may be written in less time, and structured to read closer to human language; and programs may be interpreted with similar logical meanings on architecturally different computers. These benefits are so strong that the vast majority of today's software is written in high-level programming languages .post.url #82 "\fT[TIOBE\fP \fT23],\fP" .post.url #7 "[Backus \fT56].\fP" .pg C was among the languages developed to transition from programming in assembly to a high-level language .post.url #7 "[Backus \fT56],\fP" .post.url #70 "[Ritchie \fT93].\fP" It began its development at Bell Laboratories, a subsidiary of .c2sc AT&T, “as a system implementation language for the nascent Unix operating system” .post.url #70 "[Ritchie \fT93].\fP" Unix was a set of software to enable a singular computer to run multiple programs concurrently — as opposed to one at a time. Further, it fulfilled the basic infrastructure needed to make hardware accessible in software .post.url #66 "[Ritchie \fT74],\fP" .post.url #69 "[Ritchie \fT84].\fP" .de sl . ft Courier . ps 9 . nf .. .de el . ft R . ps .. .sp 0.5 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll \n(34u*1u/3u .if \n(.l<\n(46 .ll \n(46u .in 0 .sl .lf 1 code/hello.c #include .sp int main() { puts("Hello."); return 0; } .lf 100 stdin .el .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll \n(34u*1u/3u .if \n(.l<\n(47 .ll \n(47u .in 0 .sl .lf 1 code/hello.gas .data msg: .asciz "Hello.\\n" len = . - msg - 1 .text .global _start _start: pushl $len pushl $msg pushl $1 movl $4, %eax call do_syscall addl $12, %esp pushl $0 movl $1, %eax call do_syscall do_syscall: int $0x80 ret .lf 104 stdin .el .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 0+\n(46+\n(47 .nr 38 \n(.l-\n(38 .nr 38 \n(38/3 .if \n(38<0 .nr 38 0 .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((6*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 293 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(40u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-40 .stc Left: A trivial program written in C for printing “Hello.” to the screen. Written by the author. Right: A program written in Assembly for the same purpose. It assumes a specific version of modern Unix and a .c2sc PC-architecture computer. Adapted from .post.url #78 "[Sommers \fT00].\fP" .enc .pg Unix and C were designed around each-other. C was designed to leverage the hardware abstractions provided by Unix, and much of Unix itself came to be written in C .post.url #70 "[Ritchie \fT93].\fP" This bond allowed C and Unix to form the first “portable” programming environment. In such an environment, programs written for one set of hardware may run largely or wholly unmodified on another set of hardware .post.url #26 "[Johnson \fT78].\fP" Unix and C — and many programs written in C to run on top of Unix — could then be ported to a new machine with relative ease. “[T]hough originally unplanned,” Unix's authors discovered it “to be possible to produce an operating system and set of software that runs on several machines and whose expression in source code is, except for a few modules, identical on each machine” .post.url #68 "[Ritchie \fT76].\fP" .pg Despite C and Unix forming a revolutionary product, they were distributed liberally to universities. .c2sc AT&T was not oblivious to C's value, however their hand was forced. C and Unix were to be distributed liberally, or not distributed at all. .sbq .c2sc AT&T held a government-sanctioned monopoly on the .c2sc US telephone system. The terms of .c2sc AT&T’s agreement with the .c2sc US government prevented it from selling software, which meant that it could not sell .c2sc UNIX as a product. Instead, beginning in 1974 with Fifth Edition, and especially with Sixth Edition, .c2sc AT&T licensed .c2sc UNIX for use in universities for a nominal distribution fee. … .c2sc AT&T’s release of .c2sc UNIX into universities greatly contributed to the popularity and use of the operating system, and by 1977, .c2sc UNIX was running at some 500 sites, including 125 universities in the United States and several other countries. .post.url #30 "[Kerrisk \fT10]\fP" .ebq Due to C and Unix's bonded success, in tandem with an affordable price, C became the preferred programming language in education. .pg This liberty in distribution led to several derivative versions of Unix. At University of California, Berkeley, Unix was modified and re-written over several years. It became considered by its authors as an independent, compatible operating system. By 1983, the system had become a substantial superset of Unix. The “Berkeley Software Distribution” itself became a licensed product, eventually the basis for “[s]everal commercial OSes [operating systems]” .post.url #73 "[Salus \fT94a].\fP" .pg Come 1988, independent recreations of Unix had been released, under totally free terms. They were largely compatible with Unix, but contained no actual Unix source code. These could be distributed without restriction. This was in stark contrast to \fTAT&T\fP's selective licensing to universities. Following legal dispute with \fTAT&T\fP, Berkeley Software Distribution itself became free to distribute, spawning the \fTBSD\fP family of operating systems .post.url #74 "[Salus \fT94b],\fP" .post.url #57 "[OpenBSD \fT23],\fP" .post.url #55 "[NetBSD \fT23],\fP" .post.url #17 "[FreeBSD \fT23].\fP" As Unix became both feature-rich and free to license, its influence spread further. By necessity, where Unix and its derivatives went, C went too. .pg As C became increasingly popular outside of Bell Labs, “it was clear that C needed formal standardization” .post.url #70 "[Ritchie \fT93].\fP" The language informally documented did not wholly match the language in use .post.url #28 "[Kernighan \fT78]\fP" .post.url #67 "[Ritchie \fT75].\fP" As of 1989, C became formally standardized by the American National Standards Institute .post.url #0 "\fT[ANSI\fP \fT89],\fP" .post.url #95 "\fT[X3J11\fP \fT98].\fP" This formal standard became integral to the continued growth of C's popularity. “[T]he incipient use of C in projects subject to commercial and government contract meant that the imprimatur of an official standard was important” .post.url #70 "[Ritchie \fT93].\fP" Separately, C's sister project, Unix, became standardized .post.url #23 "\fT[IEEE\fP \fT07],\fP" .post.url #21 "[Harbour \fT01],\fP" .post.url #79 "[Stallman \fT11].\fP" .pg Thanks in large part to their standardization, Unix and C have been implemented and re-implemented several times. Modern versions of Unix continue to be designed in C .post.url #34 "[Linux \fT23],\fP" .post.url #57 "[OpenBSD \fT23],\fP" .post.url #55 "[NetBSD \fT23],\fP" .post.url #17 "[FreeBSD \fT23],\fP" .post.url #24 "[Illumos \fT23].\fP" On computers which provide services en masse — public access web sites; e-mail servers — these are go-to choices .post.url #80 "[StatCounter \fT23a],\fP" .post.url #16 "[Fortune \fT23].\fP" The small computers that manage home internet connections often use the same or similar infrastructure .post.url #11 "[Dunn \fT18],\fP" .post.url #58 "[OpenWRT \fT23].\fP" In essence, Unix's descendants enable the internet as we know it today, and they themselves are enabled by C. .ff R +lnum +tnum ... 0 -1.25 3.9 1.25 ... 0.000i 2.500i 3.900i 0.000i .nr 00 \n(.u .nf .PS 2.500i 3.900i .lf 356 .lf 311 .lf 1 data/osms .lf 322 stdin \h'0.300i'\v'1.000i'\v'.2m'\v'-1u*\n(.vu/2u'\h'-\w'Operating'u/2u'Operating .sp -1 \h'0.300i'\v'1.000i'\v'.2m'\v'1u*\n(.vu/2u'\h'-\w'System'u/2u'System .sp -1 \h'2.400i'\v'2.417i'\v'.2m'\h'-\w'Server Market Share (in %)'u/2u'Server Market Share (in %) .sp -1 \h'1.105i'\v'0.123i'\D'l1.050i 0.000i' .sp -1 \h'2.155i'\v'0.123i'\D'l0.000i 0.319i' .sp -1 \h'1.105i'\v'0.442i'\D'l1.050i 0.000i' .sp -1 \h'1.084i'\v'0.282i'\v'.2m'\h'-\w'Windows 'u'Windows .sp -1 \h'1.126i'\v'0.282i'\v'.2m'25.1 .sp -1 \h'1.105i'\v'0.601i'\D'l2.611i 0.000i' .sp -1 \h'3.716i'\v'0.601i'\D'l0.000i 0.319i' .sp -1 \h'1.105i'\v'0.920i'\D'l2.611i 0.000i' .sp -1 \h'1.084i'\v'0.761i'\v'.2m'\h'-\w'Linux 'u'Linux .sp -1 \h'1.126i'\v'0.761i'\v'.2m'62.4 .sp -1 \h'1.105i'\v'1.080i'\D'l0.213i 0.000i' .sp -1 \h'1.319i'\v'1.080i'\D'l0.000i 0.319i' .sp -1 \h'1.105i'\v'1.399i'\D'l0.213i 0.000i' .sp -1 \h'1.084i'\v'1.239i'\v'.2m'\h'-\w'\fTUNIX\fP 'u'\fTUNIX\fP .sp -1 \h'1.126i'\v'1.239i'\v'.2m'5.1 .sp -1 \h'1.105i'\v'1.558i'\D'l0.310i 0.000i' .sp -1 \h'1.415i'\v'1.558i'\D'l0.000i 0.319i' .sp -1 \h'1.105i'\v'1.877i'\D'l0.310i 0.000i' .sp -1 \h'1.084i'\v'1.718i'\v'.2m'\h'-\w'Other 'u'Other .sp -1 \h'1.126i'\v'1.718i'\v'.2m'7.4 .sp -1 \h'1.105i'\v'0.123i'\D'l0.000i 1.754i' .sp -1 .sp 1+2.500i .PE .if \n(00 .fi .lf 356 .lf 326 .ff R -lnum -tnum .stc Market share of operating systems for server use .post.url #16 "[Fortune \fT23].\fP" “Linux” is a specific derivative of Unix. “\fTUNIX\fP,” as written in the provided data, generally refers to \fTBSD\fP-derived Unix. The distinction is arguably made due to Linux's overwhelming popularity. .enc .pg More generally, C and Unix have become integral to commercial software development. Among today's most affluent software companies, Apple .post.url #56 "[Nicas \fT22]\fP" has been using C-derived languages since their acquisition of .c2sc NeXTSTEP in 1997 .post.url #77 "[Singh \fT06].\fP" .c2sc NeXTSTEP was a \fTBSD\fP-derived operating system. It was designed in a super-set of C named Objective-C. At the time of the acquisition, Apple's Macintosh line of computers were in need of new system software. They proceeded to use \fTN\fPe\fTXTSTEP\fP — implemented in C and borrowing portions of Unix — as the basis for their advancement .post.url #65 "[Reisinger \fT16],\fP" .post.url #77 "[Singh \fT06],\fP" .post.url #76 "[Singh \fT03],\fP" .post.url #13 "[Edwards \fT20].\fP" Years after the acquisition, it became the basis for the software behind the iPhone .post.url #3 "[Apple \fT23a],\fP" .post.url #18 "[Garling \fT12].\fP" .pg Before acquiring \fTNeXTSTEP\fP, Apple was near bankruptcy. \fTNeXTSTEP\fP saved them, and they have since flourished. In particular, the 2007 release of the iPhone earned Apple enormous success .post.url #39 "[Martins \fT23].\fP" Today, the iPhone itself is now uncontroversially called one of the most revolutionary products of our time .post.url #33 "[Leswing \fT19],\fP" .post.url #12 "[Eadicicco \fT17].\fP" It's not a stretch to say that C was and continues to be integral to that success. Accordingly, Apple has invested heavily in their C-based infrastructure, funding the development of a new set of compiler software .post.url #88 "[Treat \fT05],\fP" .post.url #2 "[Apple \fT12],\fP" .post.url #4 "[Apple \fT23b].\fP" .pg Microsoft, a company which genuinely competes with Apple for “World's Most Valuable Company” .post.url #31 "[Klebnikov \fT21],\fP" has similar ties to C. Their premier software product, Windows .post.url #93 "[Ward \fT23],\fP" has been written in C since 1995 .post.url #42 "[Microsoft \fT14].\fP" In the quarter-century since then, Microsoft has maintained a compatible software environment. Aside from other features .post.url #45 "[Microsoft \fT23a],\fP" this allows years-old programs to run largely or wholly unmodified on Microsoft's latest iterations of Windows .post.url #15 "[Finck \fT20],\fP" .post.url #44 "[Microsoft \fT22].\fP" .pg Individual programs, lesser in scope than operating systems, are often written in C because of its ubiquity. Programmers intending to write accessible, performant software resort to it. Notable examples include Google's Chrome, the most popular web browser .post.url #81 "[StatCounter \fT23b];\fP" ffmpeg, an exceedingly popular video processing solution .post.url #40 "[Melanson \fT11],\fP" .post.url #38 "[Maki \fT20],\fP" .post.url #32 "[Larabel \fT15];\fP" SQLite, a set of software included in a majority of consumer computers .post.url #72 "[SQLite \fT22];\fP" and OpenSSH, the networked computer log-in utility bundled with most of today's laptops .post.url #46 "[Microsoft \fT23b],\fP" .post.url #35 "[Loder \fT22].\fP" Programs originally written in languages other than C, but that need portability, may be machine-translated to C. This has been most notably done with TeX .post.url #83 "\fT[TUG\fP \fT23],\fP" a program for digital document typesetting, popularly used for academic papers .post.url #9 "\fT[CTAN\fP \fT23],\fP" .post.url #8 "[Beeton \fT18].\fP" .pg C's portability is the result of serious effort. Aside from the work of standards committees, C has been wedged into environments far different from Unix. For the sake of porting programs written in C — “a good deal of interesting software” as early as 1976 .post.url #68 "[Ritchie \fT76],\fP" subsets of Unix would be implemented on other operating systems. .pg As Microsoft's operating systems took hold in the home computer market, the desire to port C programs to them took hold just as firmly. For this purpose, Unix was first grafted on top of \fTMS-DOS\fP beginning in 1989 .post.url #96 "[Zaretskii \fT99].\fP" As \fTMS-DOS\fP was replaced by Windows, that work was carried over, resulting in a multitude of projects. Most prominently, Cygwin allows a large portion of standards-compliant Unix programs to run without modification. It maps Unix features to Windows features, and those Unix features which have no analogue are emulated .post.url #10 "[Cygwin \fT22].\fP" MinGW is a separate but related project to port modern, publicly-availably C compilers to Windows .post.url #51 "[MinGW \fT23].\fP" .pg These projects enabled programmers to write programs to run on all three of the popular software platforms — Apple's \fTBSD\fP-based Macintosh, \fTIBM\fP's \fTPC\fP and derivatives running Microsoft's Windows, and the hardware-agnostic Unix servers .post.url #62 "[Reimer \fT05].\fP" These projects became integral to the furthering of Windows's software library. Microsoft decided to further the effort for portability of C, by means of the \fTWSL\fP project. While the previous methods require Unix software to be wholly re-compiled for Windows, Microsoft's solution provides a full Unix environment .post.url #47 "[Microsoft \fT23c],\fP" .post.url #48 "[Microsoft \fT23d].\fP" .\"PDF img/tiobe.pdf C 6.5i .ff R +tnum +lnum .sp 0.5 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 60 61 62 63 64 65 66 67 68 .nr 60 0 .nr 38 \w\fILanguage\fP .if \n(60<\n(38 .nr 60 \n(38 .nr 38 \wPython .if \n(60<\n(38 .nr 60 \n(38 .nr 38 \wC .if \n(60<\n(38 .nr 60 \n(38 .nr 38 \wC++ .if \n(60<\n(38 .nr 60 \n(38 .nr 38 \wJava .if \n(60<\n(38 .nr 60 \n(38 .nr 38 \wC# .if \n(60<\n(38 .nr 60 \n(38 .nr 38 \wJavaScript .if \n(60<\n(38 .nr 60 \n(38 .nr 38 \wVisual Basic .if \n(60<\n(38 .nr 60 \n(38 .nr 38 \w\fTPHP\fP .if \n(60<\n(38 .nr 60 \n(38 .nr 38 \w\fTSQL\fP .if \n(60<\n(38 .nr 60 \n(38 .nr 38 \wAssembly .if \n(60<\n(38 .nr 60 \n(38 .nr 38 \wAda .if \n(60<\n(38 .nr 60 \n(38 .nr 38 \wObjective\*[numdash]C .if \n(60<\n(38 .nr 60 \n(38 .nr 38 \wLisp .if \n(60<\n(38 .nr 60 \n(38 .nr 38 \w(Visual) Basic .if \n(60<\n(38 .nr 60 \n(38 .60 .rm 60 .nr 61 0 .nr 38 \w2023 .if \n(61<\n(38 .nr 61 \n(38 .nr 38 \w_ .if \n(61<\n(38 .nr 61 \n(38 .nr 38 \w1 .if \n(61<\n(38 .nr 61 \n(38 .nr 38 \w2 .if \n(61<\n(38 .nr 61 \n(38 .nr 38 \w3 .if \n(61<\n(38 .nr 61 \n(38 .nr 38 \w4 .if \n(61<\n(38 .nr 61 \n(38 .nr 38 \w5 .if \n(61<\n(38 .nr 61 \n(38 .nr 38 \w6 .if \n(61<\n(38 .nr 61 \n(38 .nr 38 \w7 .if \n(61<\n(38 .nr 61 \n(38 .nr 38 \w8 .if \n(61<\n(38 .nr 61 \n(38 .nr 38 \w9 .if \n(61<\n(38 .nr 61 \n(38 .nr 38 \w10 .if \n(61<\n(38 .nr 61 \n(38 .nr 38 \w24 .if \n(61<\n(38 .nr 61 \n(38 .nr 38 \w27 .if \n(61<\n(38 .nr 61 \n(38 .nr 38 \w30 .if \n(61<\n(38 .nr 61 \n(38 .nr 38 \w\*[numdash] .if \n(61<\n(38 .nr 61 \n(38 .61 .rm 61 .nr 62 0 .nr 38 \w2018 .if \n(62<\n(38 .nr 62 \n(38 .nr 38 \w_ .if \n(62<\n(38 .nr 62 \n(38 .nr 38 \w4 .if \n(62<\n(38 .nr 62 \n(38 .nr 38 \w2 .if \n(62<\n(38 .nr 62 \n(38 .nr 38 \w3 .if \n(62<\n(38 .nr 62 \n(38 .nr 38 \w1 .if \n(62<\n(38 .nr 62 \n(38 .nr 38 \w5 .if \n(62<\n(38 .nr 62 \n(38 .nr 38 \w8 .if \n(62<\n(38 .nr 62 \n(38 .nr 38 \w18 .if \n(62<\n(38 .nr 62 \n(38 .nr 38 \w7 .if \n(62<\n(38 .nr 62 \n(38 .nr 38 \w88 .if \n(62<\n(38 .nr 62 \n(38 .nr 38 \w13 .if \n(62<\n(38 .nr 62 \n(38 .nr 38 \w31 .if \n(62<\n(38 .nr 62 \n(38 .nr 38 \w12 .if \n(62<\n(38 .nr 62 \n(38 .nr 38 \w29 .if \n(62<\n(38 .nr 62 \n(38 .nr 38 \w\*[numdash] .if \n(62<\n(38 .nr 62 \n(38 .62 .rm 62 .nr 63 0 .nr 38 \w2013 .if \n(63<\n(38 .nr 63 \n(38 .nr 38 \w_ .if \n(63<\n(38 .nr 63 \n(38 .nr 38 \w8 .if \n(63<\n(38 .nr 63 \n(38 .nr 38 \w1 .if \n(63<\n(38 .nr 63 \n(38 .nr 38 \w4 .if \n(63<\n(38 .nr 63 \n(38 .nr 38 \w2 .if \n(63<\n(38 .nr 63 \n(38 .nr 38 \w5 .if \n(63<\n(38 .nr 63 \n(38 .nr 38 \w9 .if \n(63<\n(38 .nr 63 \n(38 .nr 38 \w\*[numdash] .if \n(63<\n(38 .nr 63 \n(38 .nr 38 \w6 .if \n(63<\n(38 .nr 63 \n(38 .nr 38 \w\*[numdash] .if \n(63<\n(38 .nr 63 \n(38 .nr 38 \w\*[numdash] .if \n(63<\n(38 .nr 63 \n(38 .nr 38 \w22 .if \n(63<\n(38 .nr 63 \n(38 .nr 38 \w3 .if \n(63<\n(38 .nr 63 \n(38 .nr 38 \w14 .if \n(63<\n(38 .nr 63 \n(38 .nr 38 \w7 .if \n(63<\n(38 .nr 63 \n(38 .63 .rm 63 .nr 64 0 .nr 38 \w2008 .if \n(64<\n(38 .nr 64 \n(38 .nr 38 \w_ .if \n(64<\n(38 .nr 64 \n(38 .nr 38 \w6 .if \n(64<\n(38 .nr 64 \n(38 .nr 38 \w2 .if \n(64<\n(38 .nr 64 \n(38 .nr 38 \w3 .if \n(64<\n(38 .nr 64 \n(38 .nr 38 \w1 .if \n(64<\n(38 .nr 64 \n(38 .nr 38 \w8 .if \n(64<\n(38 .nr 64 \n(38 .nr 38 \w9 .if \n(64<\n(38 .nr 64 \n(38 .nr 38 \w\*[numdash] .if \n(64<\n(38 .nr 64 \n(38 .nr 38 \w5 .if \n(64<\n(38 .nr 64 \n(38 .nr 38 \w\*[numdash] .if \n(64<\n(38 .nr 64 \n(38 .nr 38 \w\*[numdash] .if \n(64<\n(38 .nr 64 \n(38 .nr 38 \w20 .if \n(64<\n(38 .nr 64 \n(38 .nr 38 \w41 .if \n(64<\n(38 .nr 64 \n(38 .nr 38 \w17 .if \n(64<\n(38 .nr 64 \n(38 .nr 38 \w4 .if \n(64<\n(38 .nr 64 \n(38 .64 .rm 64 .nr 65 0 .nr 38 \w2003 .if \n(65<\n(38 .nr 65 \n(38 .nr 38 \w_ .if \n(65<\n(38 .nr 65 \n(38 .nr 38 \w11 .if \n(65<\n(38 .nr 65 \n(38 .nr 38 \w2 .if \n(65<\n(38 .nr 65 \n(38 .nr 38 \w3 .if \n(65<\n(38 .nr 65 \n(38 .nr 38 \w1 .if \n(65<\n(38 .nr 65 \n(38 .nr 38 \w9 .if \n(65<\n(38 .nr 65 \n(38 .nr 38 \w8 .if \n(65<\n(38 .nr 65 \n(38 .nr 38 \w\*[numdash] .if \n(65<\n(38 .nr 65 \n(38 .nr 38 \w6 .if \n(65<\n(38 .nr 65 \n(38 .nr 38 \w7 .if \n(65<\n(38 .nr 65 \n(38 .nr 38 \w\*[numdash] .if \n(65<\n(38 .nr 65 \n(38 .nr 38 \w16 .if \n(65<\n(38 .nr 65 \n(38 .nr 38 \w48 .if \n(65<\n(38 .nr 65 \n(38 .nr 38 \w15 .if \n(65<\n(38 .nr 65 \n(38 .nr 38 \w5 .if \n(65<\n(38 .nr 65 \n(38 .65 .rm 65 .nr 66 0 .nr 38 \w1998 .if \n(66<\n(38 .nr 66 \n(38 .nr 38 \w_ .if \n(66<\n(38 .nr 66 \n(38 .nr 38 \w24 .if \n(66<\n(38 .nr 66 \n(38 .nr 38 \w1 .if \n(66<\n(38 .nr 66 \n(38 .nr 38 \w2 .if \n(66<\n(38 .nr 66 \n(38 .nr 38 \w18 .if \n(66<\n(38 .nr 66 \n(38 .nr 38 \w\*[numdash] .if \n(66<\n(38 .nr 66 \n(38 .nr 38 \w21 .if \n(66<\n(38 .nr 66 \n(38 .nr 38 \w\*[numdash] .if \n(66<\n(38 .nr 66 \n(38 .nr 38 \w\*[numdash] .if \n(66<\n(38 .nr 66 \n(38 .nr 38 \w\*[numdash] .if \n(66<\n(38 .nr 66 \n(38 .nr 38 \w\*[numdash] .if \n(66<\n(38 .nr 66 \n(38 .nr 38 \w16 .if \n(66<\n(38 .nr 66 \n(38 .nr 38 \w\*[numdash] .if \n(66<\n(38 .nr 66 \n(38 .nr 38 \w10 .if \n(66<\n(38 .nr 66 \n(38 .nr 38 \w3 .if \n(66<\n(38 .nr 66 \n(38 .66 .rm 66 .nr 67 0 .nr 38 \w1993 .if \n(67<\n(38 .nr 67 \n(38 .nr 38 \w_ .if \n(67<\n(38 .nr 67 \n(38 .nr 38 \w22 .if \n(67<\n(38 .nr 67 \n(38 .nr 38 \w1 .if \n(67<\n(38 .nr 67 \n(38 .nr 38 \w2 .if \n(67<\n(38 .nr 67 \n(38 .nr 38 \w\*[numdash] .if \n(67<\n(38 .nr 67 \n(38 .nr 38 \w\*[numdash] .if \n(67<\n(38 .nr 67 \n(38 .nr 38 \w\*[numdash] .if \n(67<\n(38 .nr 67 \n(38 .nr 38 \w\*[numdash] .if \n(67<\n(38 .nr 67 \n(38 .nr 38 \w\*[numdash] .if \n(67<\n(38 .nr 67 \n(38 .nr 38 \w\*[numdash] .if \n(67<\n(38 .nr 67 \n(38 .nr 38 \w\*[numdash] .if \n(67<\n(38 .nr 67 \n(38 .nr 38 \w7 .if \n(67<\n(38 .nr 67 \n(38 .nr 38 \w\*[numdash] .if \n(67<\n(38 .nr 67 \n(38 .nr 38 \w8 .if \n(67<\n(38 .nr 67 \n(38 .nr 38 \w3 .if \n(67<\n(38 .nr 67 \n(38 .67 .rm 67 .nr 68 0 .nr 38 \w1988 .if \n(68<\n(38 .nr 68 \n(38 .nr 38 \w_ .if \n(68<\n(38 .nr 68 \n(38 .nr 38 \w\*[numdash] .if \n(68<\n(38 .nr 68 \n(38 .nr 38 \w1 .if \n(68<\n(38 .nr 68 \n(38 .nr 38 \w4 .if \n(68<\n(38 .nr 68 \n(38 .nr 38 \w\*[numdash] .if \n(68<\n(38 .nr 68 \n(38 .nr 38 \w\*[numdash] .if \n(68<\n(38 .nr 68 \n(38 .nr 38 \w\*[numdash] .if \n(68<\n(38 .nr 68 \n(38 .nr 38 \w\*[numdash] .if \n(68<\n(38 .nr 68 \n(38 .nr 38 \w\*[numdash] .if \n(68<\n(38 .nr 68 \n(38 .nr 38 \w\*[numdash] .if \n(68<\n(38 .nr 68 \n(38 .nr 38 \w\*[numdash] .if \n(68<\n(38 .nr 68 \n(38 .nr 38 \w3 .if \n(68<\n(38 .nr 68 \n(38 .nr 38 \w\*[numdash] .if \n(68<\n(38 .nr 68 \n(38 .nr 38 \w2 .if \n(68<\n(38 .nr 68 \n(38 .nr 38 \w7 .if \n(68<\n(38 .nr 68 \n(38 .68 .rm 68 .nr 38 \w\fIYear\fP-\n(61-\n(62-\n(63-\n(64-\n(65-\n(66-\n(67-\n(68 .if \n(38>0 .nr 38 \n(38/7 .if \n(38<0 .nr 38 0 .nr 62 +\n(38 .nr 63 +\n(38 .nr 64 +\n(38 .nr 65 +\n(38 .nr 66 +\n(38 .nr 67 +\n(38 .nr 68 +\n(38 .nr 38 0+\n(60+\n(61+\n(62+\n(63+\n(64+\n(65+\n(66+\n(67+\n(68 .nr 38 \n(.l-\n(38 .nr 38 \n(38/24 .if \n(38<0 .nr 38 0 .nr 59 0 .nr 40 \n(59+((0*\n(38)/2) .nr 60 +\n(40 .nr 41 \n(60+((6*\n(38)/2) .nr 61 +\n(41 .nr 42 \n(61+((6*\n(38)/2) .nr 62 +\n(42 .nr 43 \n(62+((6*\n(38)/2) .nr 63 +\n(43 .nr 44 \n(63+((6*\n(38)/2) .nr 64 +\n(44 .nr 45 \n(64+((6*\n(38)/2) .nr 65 +\n(45 .nr 46 \n(65+((6*\n(38)/2) .nr 66 +\n(46 .nr 47 \n(66+((6*\n(38)/2) .nr 67 +\n(47 .nr 48 \n(67+((6*\n(38)/2) .nr 68 +\n(48 .nr TW \n(68 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 590 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ta \n(60u \n(68u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\fILanguage\f(\n(31\h'|\n(41u'\fIYear\f(\n(31 .ta \n(60u \n(61u \n(62u \n(63u \n(64u \n(65u \n(66u \n(67u \n(68u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u'2023\h'|\n(42u'2018\h'|\n(43u'2013\h'|\n(44u'2008\h'|\n(45u'2003\h'|\n(46u'1998\h'|\n(47u'1993\h'|\n(48u'1988 .ta \n(60u \n(61u \n(62u \n(63u \n(64u \n(65u \n(66u \n(67u \n(68u .nr 36 \n(.v .vs \n(.vu-\n(.sp .nr 35 \n(.vu .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u'\h'(|\n(41u+|\n(60u)/2u'\s(\n(33\l'|\n(TWu\(ul'\s0\h'|\n(42u'\h'|\n(43u'\h'|\n(44u'\h'|\n(45u'\h'|\n(46u'\h'|\n(47u'\h'|\n(48u' .vs \n(36u .ta \n(60u \n(61u \n(62u \n(63u \n(64u \n(65u \n(66u \n(67u \n(68u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'Python\h'|\n(41u'1\h'|\n(42u'4\h'|\n(43u'8\h'|\n(44u'6\h'|\n(45u'11\h'|\n(46u'24\h'|\n(47u'22\h'|\n(48u'\*[numdash] .ta \n(60u \n(61u \n(62u \n(63u \n(64u \n(65u \n(66u \n(67u \n(68u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'C\h'|\n(41u'2\h'|\n(42u'2\h'|\n(43u'1\h'|\n(44u'2\h'|\n(45u'2\h'|\n(46u'1\h'|\n(47u'1\h'|\n(48u'1 .ta \n(60u \n(61u \n(62u \n(63u \n(64u \n(65u \n(66u \n(67u \n(68u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'C++\h'|\n(41u'3\h'|\n(42u'3\h'|\n(43u'4\h'|\n(44u'3\h'|\n(45u'3\h'|\n(46u'2\h'|\n(47u'2\h'|\n(48u'4 .ta \n(60u \n(61u \n(62u \n(63u \n(64u \n(65u \n(66u \n(67u \n(68u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'Java\h'|\n(41u'4\h'|\n(42u'1\h'|\n(43u'2\h'|\n(44u'1\h'|\n(45u'1\h'|\n(46u'18\h'|\n(47u'\*[numdash]\h'|\n(48u'\*[numdash] .ta \n(60u \n(61u \n(62u \n(63u \n(64u \n(65u \n(66u \n(67u \n(68u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'C#\h'|\n(41u'5\h'|\n(42u'5\h'|\n(43u'5\h'|\n(44u'8\h'|\n(45u'9\h'|\n(46u'\*[numdash]\h'|\n(47u'\*[numdash]\h'|\n(48u'\*[numdash] .ta \n(60u \n(61u \n(62u \n(63u \n(64u \n(65u \n(66u \n(67u \n(68u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'JavaScript\h'|\n(41u'6\h'|\n(42u'8\h'|\n(43u'9\h'|\n(44u'9\h'|\n(45u'8\h'|\n(46u'21\h'|\n(47u'\*[numdash]\h'|\n(48u'\*[numdash] .ta \n(60u \n(61u \n(62u \n(63u \n(64u \n(65u \n(66u \n(67u \n(68u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'Visual Basic\h'|\n(41u'7\h'|\n(42u'18\h'|\n(43u'\*[numdash]\h'|\n(44u'\*[numdash]\h'|\n(45u'\*[numdash]\h'|\n(46u'\*[numdash]\h'|\n(47u'\*[numdash]\h'|\n(48u'\*[numdash] .ta \n(60u \n(61u \n(62u \n(63u \n(64u \n(65u \n(66u \n(67u \n(68u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\fTPHP\fP\h'|\n(41u'8\h'|\n(42u'7\h'|\n(43u'6\h'|\n(44u'5\h'|\n(45u'6\h'|\n(46u'\*[numdash]\h'|\n(47u'\*[numdash]\h'|\n(48u'\*[numdash] .ta \n(60u \n(61u \n(62u \n(63u \n(64u \n(65u \n(66u \n(67u \n(68u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\fTSQL\fP\h'|\n(41u'9\h'|\n(42u'88\h'|\n(43u'\*[numdash]\h'|\n(44u'\*[numdash]\h'|\n(45u'7\h'|\n(46u'\*[numdash]\h'|\n(47u'\*[numdash]\h'|\n(48u'\*[numdash] .ta \n(60u \n(61u \n(62u \n(63u \n(64u \n(65u \n(66u \n(67u \n(68u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'Assembly\h'|\n(41u'10\h'|\n(42u'13\h'|\n(43u'\*[numdash]\h'|\n(44u'\*[numdash]\h'|\n(45u'\*[numdash]\h'|\n(46u'\*[numdash]\h'|\n(47u'\*[numdash]\h'|\n(48u'\*[numdash] .ta \n(60u \n(61u \n(62u \n(63u \n(64u \n(65u \n(66u \n(67u \n(68u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'Ada\h'|\n(41u'24\h'|\n(42u'31\h'|\n(43u'22\h'|\n(44u'20\h'|\n(45u'16\h'|\n(46u'16\h'|\n(47u'7\h'|\n(48u'3 .ta \n(60u \n(61u \n(62u \n(63u \n(64u \n(65u \n(66u \n(67u \n(68u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'Objective\*[numdash]C\h'|\n(41u'27\h'|\n(42u'12\h'|\n(43u'3\h'|\n(44u'41\h'|\n(45u'48\h'|\n(46u'\*[numdash]\h'|\n(47u'\*[numdash]\h'|\n(48u'\*[numdash] .ta \n(60u \n(61u \n(62u \n(63u \n(64u \n(65u \n(66u \n(67u \n(68u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'Lisp\h'|\n(41u'30\h'|\n(42u'29\h'|\n(43u'14\h'|\n(44u'17\h'|\n(45u'15\h'|\n(46u'10\h'|\n(47u'8\h'|\n(48u'2 .ta \n(60u \n(61u \n(62u \n(63u \n(64u \n(65u \n(66u \n(67u \n(68u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'(Visual) Basic\h'|\n(41u'\*[numdash]\h'|\n(42u'\*[numdash]\h'|\n(43u'7\h'|\n(44u'4\h'|\n(45u'5\h'|\n(46u'3\h'|\n(47u'3\h'|\n(48u'7 .fc .nr T. 1 .T# 1 .35 .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-22 .ff R -tnum -lnum .stc Estimated and averaged programming language popularity over the course of a given year, from 1988 through 2023 .post.url #82 "\fT[TIOBE\fP \fT23].\fP" “1” marks the first most popular, “30” marks the 30th most popular. “(Visual) Basic” and “Visual Basic” are intentionally distinct. The former refers to a now split family of languages. The latter refers to a specific language from that split. For the sake of column width, “Assembly Language” has been truncated to “Assembly.” .enc .pg C's influence has permeated the evolution of programming languages. The high-level programming languages which rival C's popularity .post.url #82 "\fT[TIOBE\fP \fT23]\fP" borrow heavily from its appearance and semantics. Briefly analyzing Figure \fN\n[fg]\fP, it is only these languages which have popularly flourished for the past two decades. C++ is a direct derivative of C. Java resembles C closely, to the point at which valid C is nearly valid Java. Python and C# each take basic syntax from C. JavaScript is intended to be C for the web browser .post.url #50 "[Miller \fT22],\fP" .post.url #14 "[Ezick \fT02].\fP" These are the notable market competitors. Evidently, C shaped the market for 50 years past its inception. .enc .ft Courier .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 50 51 52 53 .nr 50 0 .nr 38 \wwhile .if \n(50<\n(38 .nr 50 \n(38 .nr 38 \wif .if \n(50<\n(38 .nr 50 \n(38 .50 .rm 50 .nr 51 0 .nr 38 \wreturn .if \n(51<\n(38 .nr 51 \n(38 .nr 38 \welse .if \n(51<\n(38 .nr 51 \n(38 .51 .rm 51 .nr 52 0 .nr 38 \wbreak .if \n(52<\n(38 .nr 52 \n(38 .nr 38 \wfor .if \n(52<\n(38 .nr 52 \n(38 .52 .rm 52 .nr 53 0 .nr 38 \wcontinue .if \n(53<\n(38 .nr 53 \n(38 .53 .rm 53 .nr 38 1n .nr 49 0 .nr 40 \n(49+((0*\n(38)/2) .nr 50 +\n(40 .nr 41 \n(50+((6*\n(38)/2) .nr 51 +\n(41 .nr 42 \n(51+((6*\n(38)/2) .nr 52 +\n(42 .nr 43 \n(52+((6*\n(38)/2) .nr 53 +\n(43 .nr TW \n(53 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 621 file Input is too wide - \n(TW units .nr #I \n(.i .in +(\n(.lu-\n(TWu-\n(.iu)/2u .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ta \n(50u \n(51u \n(52u \n(53u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'while\h'|\n(41u'return\h'|\n(42u'break\h'|\n(43u'continue .ta \n(50u \n(51u \n(52u \n(53u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'if\h'|\n(41u'else\h'|\n(42u'for\h'|\n(43u' .fc .nr T. 1 .T# 1 .in \n(#Iu .35 .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-5 .ft P .stc Key words with similar semantics in C, Python, C++, Java, C#, and JavaScript .post.url #49 "[Microsoft \fT23e],\fP" .post.url #43 "[Microsoft \fT21],\fP" .post.url #52 "[Mozilla \fT23],\fP" .post.url #61 "[Python \fT23].\fP" Despite being distinct languages, some of their semantics are similar. .enc .pg C's popularity has warranted continued extension and standardization. Though the 1989 standard remains de-facto, C has been continually standardized by the International Organization for Standardization and the International Electrotechnical Commission .post.url #92 "\fT[WG14\fP \fT21].\fP" C has been grown from a singular language to a family of languages. This growth blurs the lines between C and its contemporaries, bringing modern considerations into the old language's design. .pg As opposed to languages distinct from C, newly standardized versions of C have the benefit of its existing software infrastructure. That infrastructure has been honed over half of a century. The authors of languages operating in the same market as C have a lofty goal: to beat 50 years of pre-built software, documentation, and compiler improvement. Particularly, programs written in C are as fast and efficient as high-level programs may be. If there are better ways of generating code than modern C compilers perform, we don't know of them. By comparison, most other languages and their compilers are grossly inefficient. .post.url #59 "[Pereira \fT17].\fP" .sp 0.5 .ff R +lnum .in +1i 1. C, Pascal, Go .br 2. Rust, C++, Fortran .br 3. Ada .br 4. Java, Chapel, Lisp, Ocaml .br 5. Swift, Haskell, C# .br 6. Dart, F#, Racket, Hack, \fTPHP\fP .br 7. JavaScript, Ruby, Python .br 8. TypeScript, Erlang .br 9. Lua, JRuby, Perl .in -1i .ff R -lnum .stc The measured energy, time, and memory efficiency of programming languages, separated into distinct tiers .post.url #59 "[Pereira \fT17].\fP" C is in the top tier, and the first in its class. .enc .pg C is everywhere. It's the basis for software in home computers, cell phones, Wi-Fi routers, and web servers. Those categories arguably span the majority of computing systems people interact with today. Despite C's ubiquity, it is not trivial. The time before C's standardization had no similar language. The time since has produced derivatives, but no replacement. Before the advent of these derivatives, C had become so universal as to be a “lingua franca” among programming languages .post.url #6 "[Armstrong \fT14].\fP" Modern and popular competition remains structurally and syntactically similar. .pg The popularity of programming languages derived from C is comparable to the popularity of natural languages derived from Latin. In each case, the derivatives are unique, but similar enough to be structurally and sometimes literally compatible. The gaping hole in that comparison is that, quite unlike Latin, C is very much a living language. No computing system is complete without it. .pg This essay was originally written for an English \fN101\fP class. It was written throughout Fall of 2023, and submitted December 11, around 4 in the morning. It has been re-published here, with small alterations. A copy of the original is archived at .post.url https://kaa.neocities.org/submitted kaa.neocities.org/submitted. .sh The Struggles of Typeface Selection • Selecting a typeface is difficult today • All text is taken as a typeface • Typefaces take a long, long time to create • Suffice it to say that designers need to be paid • More than a million digital typefaces, how many are good • Many of the popular typefaces developed years ago • Look at that one top 100 list with validity • Typefaces are themselves not copyrightable, but the digital data which represents an implementation of one is • This holds only for typefaces made of splines, as opposed to bitmap typefaces • The typefaces which come with operating systems are illegal to use outside of the vendor's environment • Mac fonts on MacOS • Windows fonts on Windows • To distribute typeface from Windows in a PDF, must have special permission bits set • Don't distribute Mac typeface? • Commercial typeface offerings are often prohibitively expensive. • Ruse is the exreme example • Neue Haas Grotesk • There are many `free' typefaces, of arguably amateur quality • There are some exceptions to this rule: • GhostScript fonts • Extensions from CTAN and occasionally Github • Fira • Cooper Hewitt • For mathematics, Computer Modern • Go super-family • Adobe Source super-family • Brill • EB Garamond • Symbola • Twemoji • IBM Plex • RW Garamond • Purported exceptions to this rule make by some standards, and miss it by other standards • By quantity, Google font originals is largely low quality • There are a few great options • Noto • Crimson? • Plenty of amateur projects shared on dafont and similar sites • No quality control, whatsoever. • It doesn't take a designer to notice the quality of a font, in the same way that it doesn't take a hairdresser to notice a great haircut. • Today's typesetters have some options. • Pay hefty sums. • Make do with very select designs which have been freely released. • Pretend the typefaces which come with their software environments are the only options Appendix • Here's how to install Neue Haas Grotesk Text; Gill Sans Nova; and Verdana and Georgia Pro on Windows 10. • Of the typefaces which come with Windows 10, Palatino and Times New Roman are permissible for body copy. Consolas and Cascadia are good for code. • Please don't use the Courier which comes with Windows. • MacOS comes with Times New Roman and Palatino. • MacOS's Baskerville is somewhat spindly. • The courier is just fine. • Comes with a good script typeface: Zapfino. • For titling, Bodoni and Big Caslon. .sh Bibliography .ff R +lnum .ff I +lnum .ad pl .hy 0 .hydash -/ .post.name 0 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [\fTANSI\fP \fT89\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 American National Standard Institute; International Organization for Standardization, \fIAmerican National Standard for Programming Languages – C; .ff I +c2sc ANSI/ISO 9899-1990.\fP .ff I -c2sc International Organization for Standardization, 1990. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 770 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-13 .post.name 1 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Aho \fT14\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Aho, Alfred V.; Lam, Monica S.; Sethi, Ravi; Ullman, Jeffrey D. .ft I Compilers: Principles, Techniques, and Tools Second Edition. .ft P Pearson Education Limited, 2014. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 784 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-12 .post.name 2 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Apple \fT12\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Apple, .c2sc “LLVM Compiler Overview.” Apple, 13 December 2012, .post.url https://developer.apple.com/library/archive/documentation/CompilerTools/Conceptual/LLVMCompilerOverview/index.html developer.apple.com/library/archive/documentation/CompilerTools/Conceptual/LLVMCompilerOverview/index.html. Accessed 14 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 799 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-13 .post.name 3 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Apple \fT23a\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Apple, “xnu.” Github, 26 September 2023, .post.url https://github.com/apple-oss-distributions/xnu/commit/1031c584a5e37aff177559b9f69dbd3c8c3fd30a github.com/apple-oss-distributions/xnu. Accessed 13 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 812 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 4 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Apple \fT23b\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Apple, .c2sc “LLVM / Clang.” Apple, 2023, .post.url https://opensource.apple.com/projects/llvm-clang/ opensource.apple.com/projects/llvm-clang. Accessed 14 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 827 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-13 .post.name 5 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Arm \fT21\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Arm Limited. \fIArm® A64 Instruction Set Architecture Armv8, for Armv8-A architecture profile,\fP p. 2. Arm Limited, March 2021, .post.url https://documentation-service.arm.com/static/606ef2575e70d934bc69e1bf documentation-service.arm.com/static/606ef2575e70d934bc69e1bf. Accessed 11 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 841 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-12 .post.name 6 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Armstrong \fT14\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Joe Armstrong. “The Mess We're In.” Strange Loop Conference via YouTube, 19 September 2014, .post.url https://www.youtube.com/watch?v=lKXe3HUG2l4&t=1149 https://www.youtube.com/watch?v=lKXe3HUG2l4&t=1149. Accessed 11 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 854 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 7 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Backus \fT56\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 J.W. Backus, R.J. Beeber, S. Best, R. Goldberg, H.L. Herrick, R.A. Hughes, L.B. Mitchell, R.A. Nelson, R. Nutt, D. Sayre, P.B. Sheridan, H. Stern, I. Ziller, “The .c2sc FORTRAN Automatic Coding System for the .c2sc IBM 704 .c2sc EDPM: Programmer's Reference Manual.” .c2sc IBM, 15 October 1956. Re-published at .post.url http://archive.computerhistory.org/resources/text/Fortran/102649787.05.01.acc.pdf archive.computerhistory.org/resources/text/Fortran/102649787.05.01.acc.pdf. Accessed 8 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 875 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-19 .post.name 8 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Beeton \fT18\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Barbara Beeton, Karl Berry, David Walden. “TeX: A Branch in Desktop Publishing Evolution, Part 1,” in .ft I .ff I +c2sc IEEE .ff I -c2sc Annals of the History of Computing,\fP vol.40, no.3, pp. 78–93. July–September 2018. Peer-reviewed manuscript published at .post.url https://www.walden-family.com/ieee/texhistory.html www.walden-family.com/ieee/texhistory.html. Accessed 9 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 894 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-17 .post.name 9 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [\fTCTAN\fP \fT23\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Comprehensive TeX Archive Network. “What are TeX and its friends?” 2023, .post.url https://ctan.org/tex ctan.org/tex. Accessed 9 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 908 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-12 .post.name 10 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Cygwin \fT22\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Cygwin authors. \fICygwin User's Guide,\fP, pp. 1–2. 27 January 2022, .post.url https://cygwin.com/cygwin-ug-net/cygwin-ug-net.pdf cygwin.com/cygwin-ug-net/cygwin-ug-net.pdf. Accessed 9 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 922 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-12 .post.name 11 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Dunn \fT18\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 John E. Dunn. “Most home routers lack simple Linux OS hardening security.” Sophos Ltd, 20 December 2018, .post.url http://web.archive.org/web/20230322194141/https://nakedsecurity.sophos.com/2018/12/20/most-home-routers-lack-simple-linux-os-hardening-security/ web.archive.org/web/20230322194141/https://nakedsecurity.sophos.com/2018/12/20/most-home-routers-lack-simple-linux-os-hardening-security. Accessed 8 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 935 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 12 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Eadicicco \fT17\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Lisa Eadicicco, “This Is Why the iPhone Upended the Tech Industry.” .c2sc TIME, 29 June 2017, .post.url https://time.com/4837176/iphone-10th-anniversary/ time.com/4837176/iphone-10th-anniversary/. Accessed 13 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 950 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-13 .post.name 13 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Edwards \fT20\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Benj Edwards. “Before Mac OS X: What Was NeXTSTEP, and Why Did People Love It?” How-To Geek, 7 November 2020, .post.url https://www.howtogeek.com/698532/before-mac-os-x-what-was-nextstep-and-why-did-people-love-it/ www.howtogeek.com/698532/before-mac-os-x-what-was-nextstep-and-why-did-people-love-it. Accessed 10 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 963 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 14 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Ezick \fT02\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 James Ezick. “Java and C similarities, by example (not a complete list).” Cornell University, Spring 2002, .post.url https://www.cs.cornell.edu/courses/cs202/2002sp/JavaCcomparison.html www.cs.cornell.edu/courses/cs202/2002sp/JavaCcomparison.html. Accessed 9 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 976 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 15 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Finck \fT20\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Colin Finck. “Writing Win32 apps like it's 2020: Introduction.” .c2sc ENLYZE GmbH, 30 July 2020, .post.url https://building.enlyze.com/posts/writing-win32-apps-like-its-2020-part-1/ building.enlyze.com/posts/writing-win32-apps-like-its-2020-part-1. Accessed 8 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 991 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-13 .post.name 16 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Fortune \fT23\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Fortune Business Insights. \fIServer Operating System Market Volume, Share & .ff I +c2sc COVID-19 .ff I -c2sc Impact Analysis, By Operating System (Windows, Linux, .ff I +c2sc UNIX, .ff I -c2sc and Others), By Virtualization Status (Virtual Machine, Physical, and Virtualized), By Subscription Model (Non-paid Subscription and Paid Subscription), By Enterprise Type (Large Enterprises and Small & Medium Enterprises), and Regional Forecast, 2023-2030.\fP Fortune Business Insights, May 2023, .post.url https://www.fortunebusinessinsights.com/server-operating-system-market-106601 www.fortunebusinessinsights.com/server-operating-system-market-106601. Accessed 8 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1013 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-20 .post.name 17 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [FreeBSD \fT23\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 .post.url https://freebsd.org freebsd.org. Accessed 15 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1025 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-10 .post.name 18 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Garling \fT12\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Caleb Garling, “iPhone Coding Language Now World's Third Most Popular.” .c2sc WIRED, 9 July 2012, .post.url https://www.wired.com/2012/07/apple-objective-c/ www.wired.com/2012/07/apple-objective-c. Accessed 14 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1040 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-13 .post.name 19 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Google \fT23a\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Google LLC. “Set up for Android Development.” Google LLC, 2023, .post.url https://source.android.com/docs/setup/about source.android.com/docs/setup/about. Accessed December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1053 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 20 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Google \fT23b\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 The Chromium Authors. “Developer Information for Chrome OS Devices.” Google LLC, 2023, .post.url https://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices/ www.chromium.org/chromium-os/developer-information-for-chrome-os-devices. Accessed 9 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1066 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 21 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Harbour \fT01\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Michael González Harbour, .c2sc “REAL-TIME POSIX: AN OVERVIEW.” Universidad de Cantabria Departamento de Electrónica, 16 March 2001, .post.url https://www.cs.unc.edu/~anderson/teach/comp790/papers/posix-rt.pdf www.cs.unc.edu/~anderson/teach/comp790/papers/posix-rt.pdf. Accessed 13 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1081 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-13 .post.name 22 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [\fTIBM\fP \fT92\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 .c2sc IBM. .ft I High Level Assembler for .c2sc z/OS & z/VM & z/VSE Language Reference Version 1 Release 6.\fP .c2sc IBM, 1992, .post.url http://web.archive.org/web/20230402022446/https://publibz.boulder.ibm.com/epubs/pdf/asmr1021.pdf https://publibz.boulder.ibm.com/epubs/pdf/asmr1021.pdf. Accessed 11 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1100 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-17 .post.name 23 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [\fTIEEE\fP \fT07\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 .c2sc IEEE, \fIDraft Standard for Information Technology—Portable Operating System Interface .ff I +c2sc (POSIX®)\fR. .ff I -c2sc .c2sc IEEE, 2007, .post.url https://www.open-std.org/jtc1/sc22/open/n4217.pdf www.open-std.org/jtc1/sc22/open/n4217.pdf. Accessed 13 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1119 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-17 .post.name 24 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Illumos \fT23\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 .post.url https://illumos.org/ illumos.org. Accessed 8 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1131 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-10 .post.name 25 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Intel \fT23\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Intel Corporation. \fIIntel® 64 and IA-32 Architectures Software Developer’s Manual Combined Volumes: 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D, and 4.\fP Intel Corporation, September 2023, .post.url https://cdrdv2.intel.com/v1/dl/getContent/671200 cdrdv2.intel.com/v1/dl/getContent/671200, Volume 1 pp. 5-5. Accessed 11 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1146 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-13 .post.name 26 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Johnson \fT78\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 S. C. Johnson, Dennis M. Ritchie, “Portability of C Programs and the .c2sc UNIX System” in \fIThe Bell System Techinical Journal\fP, Vol. 57, No. 6, Part 2, July–August 1978, pp. 2021-2048. Re-published at .post.url https://www.bell-labs.com/usr/dmr/www/portpap.pdf www.bell-labs.com/usr/dmr/www/portpap.pdf. Accessed 8 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1161 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-13 .post.name 27 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Jones \fT22\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Douglas W. Jones. “Punched Cards for Computer Programs.” University of Iowa Department of Computer Science, 5 December 2022, .post.url https://homepage.divms.uiowa.edu/~jones/cards/collection/i-program.html homepage.divms.uiowa.edu/~jones/cards/collection/i-program.html. Date derived from image meta data. Specifically, from “821162IBM701code.jpg.” Accessed 10 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1175 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-12 .post.name 28 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Kernighan \fT78\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Brian W. Kernighan, Dennis M. Ritchie, \fIThe C Programming Language.\fP Prentice Hall, 1978. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1185 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-8 .post.name 29 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Kernighan \fT88\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Brian W. Kernighan; Dennis M. Ritchie, \fIThe C Programming Language, Second Edition.\fP Prentice Hall, 1988. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1196 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-9 .post.name 30 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Kerrisk \fT10\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Michael Kerrisk, \fIThe Linux Programming Interface.\fP No Starch Press, 2010. pp 3–5. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1206 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-8 .post.name 31 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Klebnikov \fT21\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Sergei Klebnikov. “Microsoft is Now The World's Most Valuable Company After Apple Falls On Earnings.” Forbes Media, 29 October 2021, .post.url https://www.forbes.com/sites/sergeiklebnikov/2021/10/29/microsoft-is-now-the-worlds-most-valuable-company-after-apple-falls-on-earnings www.forbes.com/sites/sergeiklebnikov/2021/10/29/microsoft-is-now-the-worlds-most-valuable-company-after-apple-falls-on-earnings. Accessed 8 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1220 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-12 .post.name 32 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Larabel \fT15\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Michael Larabel. “Firefox Enables FFmpeg Support By Default.” Phoronix Media, 15 November 2015, .post.url https://www.phoronix.com/news/Firefox-FFmpeg-Default www.phoronix.com/news/Firefox-FFmpeg-Default. Accessed 9 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1234 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-12 .post.name 33 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Leswing \fT19\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Kif Leswing, “The iPhone decade: How Apple’s phone created and destroyed industries and changed the world.” .c2sc CNBC, 16 December 2019, .post.url https://www.cnbc.com/2019/12/16/apples-iphone-created-industries-and-changed-the-world-this-decade.html www.cnbc.com/2019/12/16/apples-iphone-created-industries-and-changed-the-world-this-decade.html. Accessed 13 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1249 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-13 .post.name 34 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Linux \fT23\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 .post.url https://kernel.org kernel.org. Accessed 15 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1261 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-10 .post.name 35 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Loder \fT22\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Chip Loder. “How to use SSH for secure connections in macOS.” Quiller Media, 15 December 2022, .post.url https://appleinsider.com/inside/macos/tips/how-to-use-ssh-for-secure-connections-in-macos appleinsider.com/inside/macos/tips/how-to-use-ssh-for-secure-connections-in-macos. Accessed 9 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1274 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 36 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Mackenzie \fT80\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Charles E Mackenzie, \fICoded Character Sets, History and Development.\fP Addison-Wesley Publishing Company, 1980, .post.url https://archive.org/download/mackenzie-coded-char-sets/Mackenzie_CodedCharSets_text.pdf archive.org/download/mackenzie-coded-char-sets/Mackenzie_CodedCharSets_text.pdf, pp. 12. Accessed 11 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1290 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-14 .post.name 37 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Mahoney \fT16\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Michael S. Mahoney, \fIAn Oral History of Unix.\fP 1 January 2016, .post.url https://gromnitsky.users.sourceforge.net/lit/an-oral-history-of-unix/book.pdf gromnitsky.users.sourceforge.net/lit/an-oral-history-of-unix/book.pdf. Accessed 12 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1303 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 38 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Maki \fT20\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 J.N. Maki, D. Gruel, C. McKinney, M.A. Ravine, M. Morales, D. Lee, R. Willson, D. Copley-Woods, M. Valvo, T. Goodsall, J. McGuire, R.G. Sellar, J.A. Schaffner, M.A. Caplinger, J.M. Shamah, A.E. Johnson, H. Ansari, K. Singh, T. Litwin, R. Deen, A. Culver, N. Ruoff, D. Petrizzo, D. Kessler, C. Basset, T. Estlin, F. Alibay, A. Nelessen, S. Algermissen. “The Mars 2020 Engineering Cameras and Microphone on the Perseverance Rover: A Next-Generation Imaging System for Mars Exploration,” excerpted from \fIThe NASA Mars 2020 Mission: Seeking Signs of Ancient Life and Preparing for Sample Return\fP, p. 37. Springer, 24 November 2020, .post.url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7686239/ www.ncbi.nlm.nih.gov/pmc/articles/PMC7686239. Accessed 9 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1317 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-12 .post.name 39 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Martins \fT23\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Daniel Martins, unnamed contributor. “Apple In The 1990s: Why It Nearly Went Bankrupt.” The Arena Group Holdings, 10 February 2023, .post.url https://www.thestreet.com/apple/news/apple-in-the-1990s-why-it-nearly-went-bankrupt www.thestreet.com/apple/news/apple-in-the-1990s-why-it-nearly-went-bankrupt. Accessed 10 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1330 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 40 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Melanson \fT11\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Mike Melanson. “Google's YouTube Uses FFmpeg.” 8 February 2011, .post.url https://multimedia.cx/eggs/googles-youtube-uses-ffmpeg/ multimedia.cx/eggs/googles-youtube-uses-ffmpeg. Accessed 9 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1343 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 41 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Menabrea \fT1842\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 L. F. Menabrea, Ada Augusta Lovelace, \fISketch of The Analytical Engine Invented by Charles Babbage\fP in \fIBibliothèque Universelle de Genève\fP, October 1842, No. 82. Re-published at .post.url https://www.fourmilab.ch/babbage/sketch.html www.fourmilab.ch/babbage/sketch.html. Accessed 12 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1356 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 42 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Microsoft \fT14\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Microsoft, “Windows .c2sc NT System Overview.” Microsoft, 20 February 2014, .post.url https://learn.microsoft.com/en-us/previous-versions/cc767881(v=technet.10) learn.microsoft.com/en-us/previous-versions/cc767881(v=technet.10). Accessed 14 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1372 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-14 .post.name 43 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Microsoft \fT21\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Microsoft. “C Keywords.” Microsoft, 20 September 2021, .post.url https://learn.microsoft.com/en-us/cpp/c-language/c-keywords?view=msvc-170 learn.microsoft.com/en-us/cpp/c-language/c-keywords. Accessed 10 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1385 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 44 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Microsoft \fT22\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Microsoft, “Get Started with Win32 and C++.” Microsoft, 27 January 2022, .post.url https://learn.microsoft.com/en-us/windows/win32/learnwin32/learn-to-program-for-windows learn.microsoft.com/en-us/windows/win32/learnwin32/learn-to-program-for-windows. Accessed 14 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1399 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-12 .post.name 45 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Microsoft \fT23a\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Microsoft. “Make older apps or programs compatible with Windows.” Microsoft, 2023, .post.url https://support.microsoft.com/en-us/windows/make-older-apps-or-programs-compatible-with-windows-783d6dd7-b439-bdb0-0490-54eea0f45938 support.microsoft.com/en-us/windows/make-older-apps-or-programs-compatible-with-windows-783d6dd7-b439-bdb0-0490-54eea0f45938. Accessed 8 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1412 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 46 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Microsoft \fT23b\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Microsoft. “Tutorial: .c2sc SSH in Windows Terminal.” Microsoft, 28 September 2023, .post.url https://learn.microsoft.com/en-us/windows/terminal/tutorials/ssh learn.microsoft.com/en-us/windows/terminal/tutorials/ssh. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1426 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-12 .post.name 47 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Microsoft \fT23c\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Microsoft. “How to install Linux on Windows with \fTWSL\fP.” Microsoft, 28 October 2023, .post.url https://learn.microsoft.com/en-us/windows/wsl/install learn.microsoft.com/en-us/windows/wsl/install. Accessed 10 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1439 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 48 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Microsoft \fT23d\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Microsoft. “\fTWSL2\fP-Linux-Kernel.” Github, 6 October 2023, .post.url https://github.com/microsoft/WSL2-Linux-Kernel github.com/microsoft/WSL2-Linux-Kernel. Accessed 10 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1452 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 49 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Microsoft \fT23e\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Microsoft. “C# Keywords.” Microsoft, 22 April 2023, .post.url https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/ learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords. Accessed 10 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1465 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 50 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Miller \fT22\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Stephan Miller. “How Are C, C++, C#, and Objective-C Different?” Codecademy, 4 March 2022, .post.url https://www.codecademy.com/resources/blog/c-vs-cplusplus-vs-csharp-vs-objective-c/ www.codecademy.com/resources/blog/c-vs-cplusplus-vs-csharp-vs-objective-c. Accessed 9 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1479 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-12 .post.name 51 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [MinGW \fT23\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 .post.url https://www.mingw-w64.org/ www.mingw-w64.org. Accessed 10 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1491 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-10 .post.name 52 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Mozilla \fT23\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Mozilla. “[JavaScript's] Lexical grammar.” Mozilla, 2023, .post.url https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#keywords developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#keywords. Accessed 10 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1504 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 53 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Nather \fT83\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Ed Nather, “The story of Mel,” in \fIThe Jargon File\fP. 21 May 1983, .post.url http://stuff.mit.edu/afs/sipb/user/marc/stuff.athena/jargon/jargon2910.ascii.gz stuff.mit.edu/afs/sipb/user/marc/stuff.athena/jargon/jargon2910.ascii.gz. Accessed 11 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1517 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 54 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Nelson \fT63\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 R. A. Nelson; K. M Lovitt, “History of Teletype Development.” Teletype Corporation, October 1963. Re-published at .post.url https://web.archive.org/web/20201105231651/http://www.thocp.net/hardware/history_of_teletype_development_.htm web.archive.org/web/20201105231651/http://www.thocp.net/hardware/history_of_teletype_development_.htm. Accessed 11 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1530 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 55 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [NetBSD \fT23\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 .post.url https://netbsd.org netbsd.org. Accessed 15 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1542 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-10 .post.name 56 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Nicas \fT22\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Jack Nicas, “Apple Becomes First Company to Hit $3 Trillion Market Value.” The New York Times, 3 January 2022, .post.url https://www.nytimes.com/2022/01/03/technology/apple-3-trillion-market-value.html www.nytimes.com/2022/01/03/technology/apple-3-trillion-market-value.html. Accessed 13 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1555 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 57 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [OpenBSD \fT23\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 .post.url https://openbsd.org openbsd.org. Accessed 15 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1567 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-10 .post.name 58 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [OpenWRT \fT23\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 OpenWRT. “OpenWRT Hardware List.” OpenWRT, 2023, .post.url https://openwrt.org/docs/techref/hardware/list openwrt.org/docs/techref/hardware/list. Accessed 8 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1580 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 59 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Pereira \fT17\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Rui Pereira, Marco Couto, Francisco Ribeiro, Rui Rua, Jácome Cunha, João Paulo Fernandes, João Saraiva. “Energy Efficiency across Programming Languages: How Do Energy, Time, and Memory Relate?” Association for Computing Machinery, 23–24 October 2017, .post.url https://greenlab.di.uminho.pt/wp-content/uploads/2017/10/sleFinal.pdf greenlab.di.uminho.pt/wp-content/uploads/2017/10/sleFinal.pdf. Accessed 11 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1593 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 60 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Post \fT83\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Ed Post, “Real Programmer's Don't Use Pascal.” \fIDatamation,\fP Volume 29, Number 7, July 1983. Re-published digitally at .post.url https://www.usm.uni-muenchen.de/~hoffmann/roff/tmp/rpdup.pdf www.usm.uni-muenchen.de/~hoffmann/roff/tmp/rpdup.pdf; .post.url https://www.pbm.com/~lindahl/real.programmers.html www.pbm.com/~lindahl/real.programmers.html; .post.url https://www.ecb.torontomu.ca/~elf/hack/realmen.html www.ecb.torontomu.ca/~elf/hack/realmen.html. Accessed 11 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1611 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-16 .post.name 61 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Python \fT23\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Python Software Foundation. \fIThe Python Language Reference,\fP “Lexical analysis.” Python Software Foundation, 2023, .post.url https://docs.python.org/3/reference/lexical_analysis.html#identifiers docs.python.org/3/reference/lexical_analysis.html#identifiers. Accessed 10 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1624 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 62 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Reimer \fT05\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Jeremy Reimer. “Total share: 30 years of personal computer market share figures.” \fTWIRED\fP Media Group, 14 December 2005, .post.url https://arstechnica.com/features/2005/12/total-share/ arstechnica.com/features/2005/12/total-share. Accessed 11 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1637 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 63 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Reinhold \fT06\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Arnold Reinhold. “Punch card from a typical Fortran program.” Wikimedia Commons, 11 May 2006, .post.url https://commons.wikimedia.org/wiki/File:FortranCardPROJ039.agr.jpg commons.wikimedia.org/wiki/File:FortranCardPROJ039.agr.jpg. Accessed 10 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1651 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-12 .post.name 64 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Reinhold \fT14\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Arnold Reinhold. “Teletype Corporation \fTASR\fP-33 on display at the Computer History Museum.” Wikimedia Commons, 2 February 2014, .post.url https://commons.wikimedia.org/wiki/File:ASR-33_at_CHM.agr.jpg commons.wikimedia.org/wiki/File:ASR-33_at_CHM.agr.jpg. Accessed 10 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1664 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 65 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Reisinger \fT16\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Don Reisinger. “Steve Jobs Sold NeXT to Apple 20 Years Ago Today.” Fortune Media \fTIP\fP Limited, 20 December 2016, .post.url https://fortune.com/2016/12/20/apple-next-anniversary/ fortune.com/2016/12/20/apple-next-anniversary. Accessed 10 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1677 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 66 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Ritchie \fT74\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Dennis M. Ritchie, Ken Thompson, Eric A. Brewer, “The Unix Time-Sharing System” in \fICommunications of the .ff I +c2sc ACM, .ft P .ff I -c2sc July 1974, Volume 17, Number 7. Re-published at .post.url https://landley.net/history/mirror/unix/unix.pdf landley.net/history/mirror/unix/unix.pdf. Accessed 12 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1695 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-16 .post.name 67 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Ritchie \fT75\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Dennis M. Ritchie, \fIC Reference Manual.\fP Bell Laboratories, May 1975. Re-published at .post.url http://doc.cat-v.org/unix/v6/operating-systems-lecture-notes/v6/doc/c.ps doc.cat-v.org/unix/v6/operating-systems-lecture-notes/v6/doc/c.ps and .post.url https://www.tuhs.org/cgi-bin/utree.pl?file=V6/usr/doc/c www.tuhs.org/cgi-bin/utree.pl?file=V6/usr/doc/c. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1710 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-13 .post.name 68 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Ritchie \fT76\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Dennis M. Ritchie, “The .c2sc UNIX Time-sharing System—A Retrospective.” Bell Laboratories, January 1977, .post.url https://www.bell-labs.com/usr/dmr/www/retro.pdf www.bell-labs.com/usr/dmr/www/retro.pdf. Accessed 8 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1726 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-14 .post.name 69 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Ritchie \fT84\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Dennis M. Ritchie, “The Evolution of the Unix Time-sharing System” in \fIAT&T Bell Laboratories Technical Journal 63 No. 6 Part 2\fP, October 1984, pp. 1577-1593. Re-published at .post.url https://read.seas.harvard.edu/~kohler/class/aosref/ritchie84evolution.pdf read.seas.harvard.edu/~kohler/class/aosref/ritchie84evolution.pdf. Accessed 12 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1739 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 70 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Ritchie \fT93\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Dennis M. Ritchie, “The Development of the C Language.” Association for Computing Machinery, April 1993, .post.url https://www.bell-labs.com/usr/dmr/www/chist.pdf www.bell-labs.com/usr/dmr/www/chist.pdf. Accessed 11 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1753 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-12 .post.name 71 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Ritchie \fT99\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Dennis M. Ritchie, “Unix Programmer's Manual, November 3, 1971.” Bell Laboratories, 11 January 1999, .post.url https://www.bell-labs.com/usr/dmr/www/1stEdman.html www.bell-labs.com/usr/dmr/www/1stEdman.html. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1766 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 72 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [SQLite \fT22\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 SQLite. “Most Widely Deployed and Used Database Engine.” SQLite, 8 January 2022, .post.url https://www.sqlite.org/mostdeployed.html www.sqlite.org/mostdeployed.html. Accessed 9 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1779 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 73 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Salus \fT94a\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Peter H. Salus. \fIA Quarter Century of .ff I +c2sc UNIX.\fP .ff I -c2sc Addison-Wesley Publishing, 1994, p. 171. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1793 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-12 .post.name 74 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Salus \fT94b\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Peter H. Salus. \fIA Quarter Century of .ff I +c2sc UNIX.\fP .ff I -c2sc Addison-Wesley Publishing, 1994, pp. 222–225. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1807 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-12 .post.name 75 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Shirriff \fT19\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Ken Shirriff. “Iconic consoles of the IBM System/360 mainframes, 55 years old.” April 2019, .post.url http://www.righto.com/2019/04/iconic-consoles-of-ibm-system360.html www.righto.com/2019/04/iconic-consoles-of-ibm-system360.html. Accessed 10 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1820 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 76 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Singh \fT03\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Amit Singh. “What is Mac OS X?” December 2003, .post.url https://web.archive.org/web/20120514135706/http://osxbook.com/book/bonus/ancient/whatismacosx/history.html web.archive.org/web/20120514135706/http://osxbook.com/book/bonus/ancient/whatismacosx/history.html. Accessed 10 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1833 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 77 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Singh \fT06\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Amit Singh, \fIMac OS X Internals: A Systems Approach.\fP Addison Wesley, 19 June 2006. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1844 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-9 .post.name 78 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Sommers \fT00\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Thoman M. Sommers. “Frequently Asked Questions for FreeBSD 2.X, 3.X and 4.X.” 2000, .post.url http://web.archive.org/web/20001027104103/http://home.ptd.net/~tms2/hello.html web.archive.org/web/20001027104103/http://home.ptd.net/~tms2/hello.html. Accessed 9 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1857 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 79 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Stallman \fT11\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Richard Stallman, “The origin of the name .c2sc POSIX.” 11 May 2011, .post.url https://stallman.org/articles/posix.html stallman.org/articles/posix.html. Accessed 13 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1872 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-13 .post.name 80 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [StatCounter \fT23a\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 StatCounter. “Operating System Market Share Worldwide - November 2023.” StatCounter, December 2023, .post.url https://gs.statcounter.com/os-market-share#monthly-202211-202311 gs.statcounter.com/os-market-share#monthly-202211-202311. Accessed 8 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1885 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 81 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [StatCounter \fT23b\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 StatCounter. “Browser Market Share Worldwide - November 2023.” StatCounter, December 2023, .post.url https://gs.statcounter.com/browser-market-share/. Accessed 9 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1898 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 82 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [\fTTIOBE\fP \fT23\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 .c2sc TIOBE Software .c2sc BV. .c2sc “TIOBE Index for November 2023.” .c2sc TIOBE Software .c2sc BV, December 2023, .post.url https://www.tiobe.com/tiobe-index/ www.tiobe.com/tiobe-index. Accessed 9 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1919 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-19 .post.name 83 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [\fTTUG\fP \fT23\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 TeX User's Group. “Web2c.” February 2022, .post.url https://tug.org/texinfohtml/web2c.html#Introduction tug.org/texinfohtml/web2c.html. Accessed 10 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1933 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-12 .post.name 84 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Thompson \fT05\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Ken Thompson; John Mashey; Yan Rosenshteyn, “Thompson, Ken oral history.” Computer History Museum, 8 February 2005, .post.url https://www.computerhistory.org/collections/catalog/102657921 computerhistory.org/collections/catalog/102657921. Accessed 20 October 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1947 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-12 .post.name 85 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Thompson \fT71a\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Ken Thompson, Dennis M. Ritchie, “Section 1 Part 1” in \fIUnix Programmer's Manual.\fP Bell Laboratories, 3 November 1971, .post.url https://www.bell-labs.com/usr/dmr/www/man11.pdf www.bell-labs.com/usr/dmr/www/man11.pdf. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1960 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 86 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Thompson \fT71b\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Ken Thompson, Dennis M. Ritchie, “Section 1 Part 2” in \fIUnix Programmer's Manual.\fP Bell Laboratories, 3 November 1971, .post.url https://www.bell-labs.com/usr/dmr/www/man12.pdf www.bell-labs.com/usr/dmr/www/man12.pdf. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1973 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 87 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Thompson \fT71c\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Ken Thompson, Dennis M. Ritchie, “Introduction” in \fIUnix Programmer's Manual.\fP Bell Laboratories, 3 November 1971, .post.url https://www.bell-labs.com/usr/dmr/www/manintro.pdf www.bell-labs.com/usr/dmr/www/manintro.pdf. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1986 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 88 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Treat \fT05\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Adam Treat, “Qt4-preview-feedback Archive, February 2005 mkspecs and patches for LLVM compile of Qt4.” 19 February 2005, .post.url https://web.archive.org/web/20111004073001/http://lists.trolltech.com/qt4-preview-feedback/2005-02/msg00691.html http://lists.trolltech.com/qt4-preview-feedback/2005-02/msg00691.html. Accessed 14 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 1999 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 89 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Turing \fT36\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Alan M. Turing, “On Computable Numbers, With An Application to the Entscheidungsproblem.” 12 November 1936. Re-published at .post.url https://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf. Accessed 12 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 2012 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 90 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [\fTVCF\fP \fT19\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Vintage Computer Federation; Ken Thompson; Brian W. Kernighan, “Ken Thompson interviewed by Brian Kernighan at .c2sc VCF East 2019.” YouTube, 6 May 2019, .post.url https://www.youtube.com/watch?v=EY6q5dv_B-o youtube.com/watch?v=EY6q5dv_B-o. Accessed 20 October 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 2029 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-15 .post.name 91 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [\fTWG14\fP \fT07\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Joint Technical Committee 1, Subcommittee 22, Working Group 14, .ft I .c2sc ISO/IEC 9899:TC3 Committee Draft (C99 with Technical Corrigendum 1, 2, and 3).\fR .c2sc ISO/IEC, 7 September 2007, .post.url https://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf. Accessed 11 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 2047 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-16 .post.name 92 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [\fTWG14\fP \fT21\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 \fTWG14\fP. “\fTISO/IEC JTC1/SC22/WG14\fP - C.” \fTISO/IEC\fP, 25 November 2021, .post.url https://www.open-std.org/jtc1/sc22/wg14/ www.open-std.org/jtc1/sc22/wg14. Accessed 10 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 2060 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-11 .post.name 93 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Ward \fT23\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Keith Ward, “A Brief History of Microsoft Windows.” Lifewire, 9 February 2023, .post.url https://www.lifewire.com/brief-history-of-microsoft-windows-3507078 www.lifewire.com/brief-history-of-microsoft-windows-3507078. Accessed 14 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 2074 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-12 .post.name 94 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Waterman \fT19\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Andrew Waterman; Krste Asanović, \fIThe RISC-V Instruction Set Manual Volume I: Unprivileged ISA.\fP .c2sc RISC-V International, 13 December 2019, .post.url https://riscv.org/wp-content/uploads/2019/12/riscv-spec-20191213.pdf riscv.org/wp-content/uploads/2019/12/riscv-spec-20191213.pdf, pp. 18. Accessed 11 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 2090 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-14 .post.name 95 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [\fTX3J11\fP \fT98\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 .c2sc X3J11, \fIRationale for International Standard - Programming Language - C.\fP .c2sc ANSI, 22 Jan 1998, .post.url https://www.open-std.org/JTC1/SC22/WG14/www/docs/n802.pdf www.open-std.org/JTC1/SC22/WG14/www/docs/n802.pdf. Accessed 11 November 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 2106 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-14 .post.name 96 .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s .vs \n(.vu .in \n(.iu .if \n(.u .fi .if \n(.j .ad .if \n(.j=0 .na .. .nf .nr #~ 0 .if \n(.T .if n .nr #~ 0.6n .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .fc .nr 33 \n(.s .af 33 01 .rm 46 47 .nr 34 \n(.lu .eo .am 46 .br .di a+ .35 .ft \n(.f .ll 1in .if \n(.l<\n(46 .ll \n(46u .in 0 [Zaretskii \fT99\fP] .br .di .nr a| \n(dn .nr a- \n(dl .. .ec \ .eo .am 47 .br .di b+ .35 .ft \n(.f .ll 2.75in .if \n(.l<\n(47 .ll \n(47u .in 0 Eli Zaretskii. “The .c2sc DJGPP Project.” July 1999, .post.url https://www.delorie.com/djgpp/doc/eli-m17n99.html www.delorie.com/djgpp/doc/eli-m17n99.html. Accessed 9 December 2023. .br .di .nr b| \n(dn .nr b- \n(dl .. .ec \ .35 .nf .ll \n(34u .nr 46 0 .46 .rm 46 .nr 38 \n(a- .if \n(46<\n(38 .nr 46 \n(38 .nr 38 1in .if \n(46<\n(38 .nr 46 \n(38 .nr 47 0 .47 .rm 47 .nr 38 \n(b- .if \n(47<\n(38 .nr 47 \n(38 .nr 38 2.75in .if \n(47<\n(38 .nr 47 \n(38 .35 .nf .ll \n(34u .nr 38 1n .nr 45 0 .nr 40 \n(45+((0*\n(38)/2) .nr 46 +\n(40 .nr 41 \n(46+((2*\n(38)/2) .nr 47 +\n(41 .nr TW \n(47 .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 2121 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 .eo .de T# .nr 35 1m .ds #d .d .if \(ts\n(.z\(ts\(ts .ds #d nl .mk ## .nr ## -1v .ls 1 .ls .. .ec .ne \n(a|u+\n(.Vu .ne \n(b|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) .ta \n(46u \n(47u .nr 35 1m .nr 31 \n(.f .af 31 01 \&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v .nr 37 \n(46u-\n(a-u .in +\n(37u .a+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(##u-1v .nr 37 \n(41u .in +\n(37u .b+ .in -\n(37u .mk 32 .if \n(32>\n(31 .nr 31 \n(32 .sp |\n(31u .fc .nr T. 1 .T# 1 .35 .rm a+ .rm b+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-13