Meta tags:
Headings (most frequently used words):
edit, pascal, types, compilers, and, language, standards, navigation, object, early, other, type, iso, iec, 1990, tools, programming, contents, history, implementations, constructs, resources, reception, see, also, references, further, reading, menu, earlier, efforts, the, system, turbo, variants, data, subrange, set, union, declarations, file, pointer, control, structures, procedures, functions, semicolons, as, statement, separators, interpreters, ides, libraries, 7185, 10206, extended, variations, list, of, related, criticism, personal, namespaces, views, contribute, print, export, in, projects, languages, borland, like,
Text of the page (most frequently used words):
the (435), pascal (355), and (258), for (122), was (101), language (97), #compiler (73), with (71), #programming (56), that (56), from (43), this (40), not (40), edit (39), wirth (37), object (36), type (36), turbo (35), iso (33), which (33), types (32), delphi (30), original (30), borland (30), algol (29), used (29), system (28), archived (25), also (24), code (23), standard (23), are (23), were (23), languages (22), data (22), its (22), compilers (21), systems (20), machine (20), extensions (20), integer (20), 7185 (19), niklaus (19), statement (18), other (18), version (18), computer (18), free (18), can (18), development (17), like (17), many (17), retrieved (16), ucsd (16), has (16), but (16), software (15), based (15), 1990 (15), such (15), early (15), array (15), pointer (15), compatible (15), written (15), using (14), articles (14), example (14), windows (14), apple (14), extended (14), end (14), support (14), record (14), later (14), one (14), use (13), standards (13), operating (13), implementation (13), source (13), variable (13), been (13), then (13), set (13), created (12), library (12), gnu (12), named (12), features (12), first (12), level (11), iec (11), university (11), most (11), these (11), have (11), functions (11), new (11), some (11), under (10), wayback (10), application (10), 2015 (10), structures (10), oberon (10), structured (10), macintosh (10), function (10), procedures (10), ide (10), ibm (10), developed (10), same (10), semicolon (10), program (10), pointers (10), available (9), hoare (9), microsoft (9), isbn (9), report (9), else (9), byte (9), into (9), while (9), implementations (9), string (9), write (9), parameters (9), both (9), bit (9), including (9), added (9), before (9), nodeptr (9), wikipedia (8), may (8), pdf (8), file (8), history (8), all (8), 1970 (8), modula (8), 1983 (8), environment (8), zürich (8), supports (8), arrays (8), any (8), constructs (8), declarations (8), allow (8), became (8), applications (8), time (8), several (8), cdc (8), block (8), begin (8), non (7), 2022 (7), more (7), create (7), org (7), java (7), 2014 (7), 1989 (7), number (7), syntax (7), visual (7), virtual (7), vsi (7), 2016 (7), rad (7), had (7), versions (7), however (7), case (7), statements (7), 1980s (7), variables (7), linux (7), dos (7), full (7), included (7), designed (7), own (7), char (7), values (7), lisa (7), links (6), related (6), identifiers (6), control (6), 10206 (6), 1985 (6), algorithms (6), programs (6), lazarus (6), oxygene (6), further (6), kernighan (6), open (6), subset (6), 1990s (6), part (6), defined (6), when (6), led (6), platform (6), adopted (6), could (6), only (6), adding (6), 6000 (6), implemented (6), sets (6), after (6), during (6), variants (6), keyword (6), does (6), procedure (6), var (6), real (6), absolute (6), ported (6), about (5), simple (5), category (5), short (5), basic (5), comparison (5), list (5), 1977 (5), dialects (5), family (5), 2020 (5), ansi (5), product (5), openvms (5), computing (5), now (5), procedural (5), very (5), references (5), commercial (5), two (5), strings (5), boolean (5), popular (5), would (5), general (5), another (5), originally (5), similar (5), cross (5), extension (5), records (5), began (5), they (5), without (5), where (5), platforms (5), compile (5), single (5), nested (5), declaration (5), word (5), than (5), efforts (5), text (4), terms (4), commons (4), license (4), page (4), link (4), changes (4), here (4), community (4), article (4), main (4), personal (4), fast (4), small (4), expanded (4), description (4), sources (4), dead (4), external (4), march (4), lists (4), fortran (4), assembly (4), ada (4), series (4), larry (4), tesler (4), 1987 (4), 1975 (4), 1986 (4), 1991 (4), component (4), net (4), volume (4), revised (4), 1980 (4), john (4), 1973 (4), definition (4), reading (4), project (4), wdsibyl (4), august (4), doi (4), july (4), unix (4), dangling (4), welsh (4), today (4), 2012 (4), sol (4), xsc (4), karlsruhe (4), computers (4), oriented (4), international (4), research (4), method (4), made (4), see (4), his (4), length (4), widely (4), being (4), teaching (4), tool (4), rapid (4), formerly (4), dialect (4), programmers (4), team (4), much (4), kit (4), through (4), still (4), required (4), variant (4), specific (4), second (4), run (4), elements (4), includes (4), win32 (4), allows (4), web (4), mainframe (4), dynamic (4), native (4), mac (4), means (4), feature (4), semicolons (4), explicit (4), must (4), efficient (4), value (4), writeln (4), usually (4), node (4), pnode (4), character (4), packed (4), introduced (4), predefined (4), complex (4), following (4), bits (4), late (4), itself (4), pdp (4), process (4), view (3), wikimedia (3), last (3), november (3), english (3), wikidata (3), information (3), portal (3), current (3), navigation (3), read (3), contributions (3), categories (3), 2018 (3), high (3), https (3), index (3), libraries (3), simula (3), sigplan (3), eth (3), euler (3), api (3), concurrent (3), acm (3), 540 (3), work (3), peter (3), wiley (3), 1981 (3), ieee (3), design (3), jensen (3), 1974 (3), user (3), manual (3), acta (3), informatica (3), structuring (3), april (3), sibyl (3), 978 (3), 160 (3), september (3), interview (3), compaq (3), 2021 (3), 2017 (3), vax (3), company (3), scientific (3), introduction (3), atomic (3), energy (3), commission (3), science (3), adobe (3), photoshop (3), name (3), model (3), possible (3), built (3), working (3), bound (3), order (3), their (3), consultation (3), criticisms (3), issues (3), compilation (3), outside (3), notable (3), serious (3), problem (3), did (3), provide (3), restrictions (3), scope (3), define (3), passed (3), static (3), generated (3), graphical (3), sybil (3), released (3), kylix (3), sold (3), range (3), large (3), because (3), common (3), limited (3), anders (3), resources (3), able (3), output (3), mode (3), there (3), called (3), machines (3), generally (3), thus (3), conformant (3), addition (3), found (3), standardized (3), until (3), macos (3), ides (3), dec (3), runs (3), palm (3), side (3), form (3), objects (3), runtime (3), memory (3), distributed (3), public (3), collection (3), embarcadero (3), operator (3), termed (3), backward (3), years (3), interpreters (3), follows (3), each (3), reference (3), triple (3), printaninteger (3), next (3), allowed (3), newer (3), nil (3), null (3), declared (3), buffer (3), concept (3), address (3), union (3), performance (3), faster (3), equivalent (3), rather (3), group (3), capable (3), moved (3), french (3), intermediate (3), concepts (3), completed (3), glasgow (3), icl (3), successful (3), multum (3), influenced (3), developers (2), mobile (2), contact (2), privacy (2), policy (2), apply (2), site (2), you (2), inc (2), norsk (2), bahasa (2), беларуская (2), wikibooks (2), projects (2), download (2), export (2), permanent (2), pages (2), upload (2), tools (2), recent (2), help (2), contents (2), talk (2), february (2), german (2), academic (2), php (2), pascal_ (2), united (2), lisp (2), javascript (2), 27000 (2), 20000 (2), 15926 (2), 11941 (2), 8651 (2), 8000 (2), 1073 (2), 1007 (2), 128 (2), award (2), tony (2), 1984 (2), 1968 (2), zurich (2), 1963 (2), weber (2), 2008 (2), active (2), 2002 (2), 2005 (2), 1965 (2), 1966 (2), 1978 (2), 1995 (2), 1988 (2), discontinued (2), midletpascal (2), turbo51 (2), pascalabc (2), pocketstudio (2), clascal (2), notices (2), springer (2), verlag (2), hall (2), 1982 (2), barron (2), 471 (2), press (2), 97649 (2), notes (2), 1972 (2), book (2), media (2), brian (2), why (2), favorite (2), 2011 (2), wiki (2), 770x3 (2), january (2), 2019 (2), x86 (2), tru64 (2), 1979 (2), ambiguities (2), experience (2), edu (2), summer (2), james (2), jan (2), wallis (2), floating (2), point (2), wuppertal (2), cadmus (2), kulisch (2), arithmetic (2), munich (2), australian (2), studio (2), 2000 (2), modular (2), generate (2), interpretive (2), understand (2), who (2), initial (2), continued (2), enhanced (2), suitable (2), since (2), separate (2), operators (2), default (2), clauses (2), followed (2), criticized (2), even (2), expressions (2), lack (2), smaller (2), stated (2), clearly (2), difficulty (2), forward (2), criticism (2), reception (2), speedsoft (2), portable (2), gpl (2), down (2), fully (2), way (2), varying (2), generation (2), freepascal (2), professional (2), targeted (2), developing (2), hejlsberg (2), semaphores (2), executed (2), back (2), kenneth (2), bowles (2), issued (2), porting (2), left (2), packing (2), dispose (2), variations (2), section (2), interpreted (2), along (2), omissions (2), pcs (2), users (2), facility (2), parameter (2), numerical (2), local (2), various (2), marketed (2), replacement (2), producing (2), supported (2), directly (2), entirely (2), amd (2), supporting (2), intel (2), processors (2), bytecode (2), implements (2), pascaline (2), highly (2), modules (2), namespace (2), dimensions (2), portability (2), custom (2), calculator (2), powerful (2), times (2), disk (2), slow (2), basis (2), mostly (2), improved (2), prism (2), aimed (2), come (2), compatibility (2), modes (2), overloading (2), self (2), hosting (2), uses (2), existed (2), terminated (2), replaced (2), extra (2), permitted (2), sequence (2), cannot (2), instead (2), contrast (2), repeat (2), separators (2), goto (2), labels (2), constants (2), ordering (2), requirement (2), intended (2), depth (2), construct (2), return (2), zero (2), condition (2), met (2), meaning (2), unlike (2), dynamically (2), eliminate (2), particularly (2), space (2), field (2), inside (2), exception (2), writing (2), element (2), check (2), problems (2), put (2), get (2), files (2), constructed (2), triangle (2), square (2), circle (2), shape (2), location (2), others (2), assigned (2), over (2), operations (2), useful (2), except (2), subrange (2), storage (2), access (2), parts (2), 255 (2), programmer (2), etc (2), conversions (2), rounds (2), characters (2), preceding (2), numbers (2), whole (2), storing (2), ignored (2), hello (2), world (2), keywords (2), period (2), unit (2), rapidly (2), z80 (2), around (2), implement (2), alternative (2), compiled (2), 68000 (2), tmt (2), names (2), module (2), incorporated (2), search (2), having (2), just (2), wrote (2), workshop (2), 370 (2), accepts (2), interpreter (2), different (2), donald (2), qub (2), findlay (2), port (2), minicomputer (2), 1900 (2), attempt (2), translated (2), hand (2), release (2), primary (2), courses (2), notably (2), add (2), derivative (2), goal (2), earlier (2), 1970s (2), definitions (2), strong (2), typing (2), improve (2), imperative (2), jump (2), cookie, statistics, disclaimers, additional, agree, registered, trademark, profit, organization, foundation, creative, attribution, sharealike, edited, utc, žemaitėška, yorùbá, tiếng, việt, українська, türkçe, тоҷикӣ, ไทย, татарча, tatarça, taqbaylit, தமிழ், tagalog, svenska, suomi, srpskohrvatski, српскохрватски, српски, srpski, slovenščina, slovenčina, shqip, русский, română, português, polski, ਪੰਜਾਬੀ, oʻzbekcha, ўзбекча, nynorsk, bokmål, 日本語, nederlands, melayu, മലയാളം, македонски, magyar, lietuvių, latviešu, latina, кыргызча, қазақша, עברית, italiano, íslenska, interlingua, indonesia, hrvatski, हिन्दी, հայերեն, 한국어, galego, gaeilge, français, فارسی, euskara, esperanto, español, ελληνικά, eesti, deutsch, dansk, čeština, чӑвашла, català, bosanski, boarisch, български, тарашкевіца, bân, lâm, বাংলা, تۆرکجه, azərbaycanca, aragonés, العربية, afrikaans, wikiquote, printable, print, item, cite, special, what, learn, contribute, donate, random, events, views, namespaces, log, account, logged, menu, hidden, nkc, lccn, j9u, bnf, message, boxes, excerpts, matches, cs1, permanently, webarchive, template, educational, title, programming_language, oldid, 1119927642, faceted, subject, terminology, czech, republic, states, israel, france, national, authority, generational, categorical, alphabetical, swift, smalltalk, shell, sql, rust, ruby, python, prolog, perl, lua, kotlin, haskell, forth, erlang, cobol, apl, timeline, 80000, 56000, 55000, 50001, 45001, 42010, 40500, 38500, 37001, 32000, 31000, 30170, 30000, 29500, 29199, 29148, 29110, 28000, 27729, 27006, 27005, 27002, 27001, 26324, 26300, 26262, 26000, 25964, 25178, 24707, 24617, 24613, 24517, 23360, 23271, 23270, 23090, 22395, 22300, 22000, 21827, 21500, 21047, 21000, 20802, 20400, 20121, 20022, 29999, 19831, 19794, 19775, 19770, 19757, 19752, 19600, 19510, 19509, 19508, 19507, 19506, 19505, 19503, 19502, 19501, 19500, 19439, 19407, 19136, 19125, 19115, 19114, 19092, 19011, 19005, 18916, 18629, 18245, 18014, 18004, 18000, 17799, 17506, 17442, 17369, 17203, 17100, 17025, 17024, 16949, 16750, 16612, 16485, 16355, 16262, 16023, 15930, wip, 15924, 15919, 15897, 15707, 15706, 15693, 15686, 15511, 15504, 15438, 15445, 15444, 15408, 15398, 15292, 15291, 15288, 15189, 15022, 14971, 14882, 14764, 14698, 14651, 14649, 14644, 14617, 14496, 14443, 14396, 14289, 14224, 14031, 14000, 13816, 13616, 13584, 13568, 13567, 13490, 13485, 13450, 13406, 13399, 13250, 13216, 13211, 12620, 12234, 12207, 12182, 12006, 11992, 11940, 11898, 11889, 11801, 11785, 11784, 11783, 11544, 11404, 11179, 11170, 11073, 10967, 10962, 10957, 10861, 10746, 10664, 10646, 10628, 10589, 10585, 10487, 10383, 238, 10303, 10218, 10179, 10165, 10161, 10160, 10118, 10116, 10007, 10006, 10005, 10000, 19999, 9995, 9985, 9984, 9945, 9899, 9897, 9797, 9660, 9594, 9592, 9593, 9564, 9529, 9506, 9496, 9407, 9362, 9314, 9293, 9241, 9227, 9141, 9126, 9075, 9036, 9000, 9001, 8879, 8859, 8820, 8807, 8805, 8806, 8691, 8652, 8632, 8613, 8601, 8583, 8571, 8501, 8373, 8217, 8178, 8093, 7942, 7816, 7813, 7812, 7811, 7810, 7736, 7637, 7498, 7200, 7098, 7064, 7027, 7010, 7002, 7001, 6943, 6709, 6523, 6438, 6429, 6425, 6385, 6346, 6344, 6166, 5964, 5807, 5800, 5776, 5775, 5725, 5428, 5427, 5426, 5218, 4909, 4217, 4165, 4157, 4031, 3977, 3950, 3901, 3864, 3602, 3601, 3307, 3297, 3166, 3103, 3029, 2852, 2848, 2788, 2720, 2711, 2709, 2533, 2281, 2240, 2146, 2145, 2108, 2047, 2033, 1745, 1629, 1538, 1413, 1155, 1004, 1000, 999, 965, 898, 860, 843, 838, 764, 732, 704, 690, 668, 657, 646, 639, 519, 518, 500, 428, 361, 306, 302, 262, 261, 259, 233, 228, 226, 217, 216, 9999, romanizations, marcel, benoist, prize, fellow, museum, achievement, turing, awards, hanspeter, mössenböck, jürg, gutknecht, collaborators, 1976, xerox, parc, stanford, workplaces, ceres, lilith, workstations, books, precedence, relationship, notation, law, formalisms, aos, bluebottle, 1998, 2007, lola, pl360, 1958, microengine, microcomputer, vision, rtl, openwire, lcl, firemonkey, fcl, clx, jrt, ack, pic, micro, superpascal, joyce, script, 1993, recollections, broy, denert, 43081, pioneers, engineering, successors, richard, forsyth, chapman, play, grogono, edition, addison, wesley, 27835, wasserman, society, issue, june, assessment, prentice, 022418, kathleen, 387, 335, 355, axiomatic, dahl, dijkstra, editors, 174, 1971, topic, lecarme, desjardins, comments, 231, 243, 2009, netlabs, wolfgang, october, 7381, 4247, 1109, ieeestd, 101061, fortan, 3929, ethz, 000814158, ecube, reagan, gem, llvm, architect, guide, nell, dale, chip, weems, 161, sneeringer, insecurities, 685, 696, practice, mandell, steven, west, publishing, 314, 33935, berkeley, michel, gien, usenix, conference, toronto, bamberger, lothar, davenport, fischer, hans, christoph, kok, schumacher, günter, ullrich, christian, winter, dik, wolff, von, gudenberg, jürgen, 1st, bath, kingdom, 92437, sons, ltd, improving, universitaet, wissenschaftliches, rechnen, softwaretechnologie, comes, delivers, germany, idg, business, gmbh, computerwoche, jetzt, mit, arithmetik, uni, gibt, nach, münchen, rall, 1016, 0898, 1221, 90181, trofimov, jon, udell, crash, pascals, agency, ieae, establishment, lucas, heights, nuclear, technology, branch, divisional, brackett, doug, ross, p15, charles, babbage, institute, 2004, cbi, umn, perspective, antique, tiobe, com, showcase, www, computerhistory, atchm, hertzfeld, andy, stories, hungarian, folklore, lecture, vol, 1897, 67958, 10722581_1, perspectives, conversation, gosling, queue, techmetrix, 1999, 2010, went, ahead, green, old, makes, servers, looked, carefully, prototype, interaction, apis, our, conclusion, unnecessary, detrimental, decision, previous, delegates, pascalcase, despite, evolve, points, predicted, fix, incompatible, varieties, seem, condensed, addresses, initialization, circuit, otherwise, closely, unsuitable, popularized, outlined, described, sizes, lengths, accept, unfeasible, sorting, unpredictable, evaluation, poor, raised, escape, knowingly, forcibly, ignore, limitations, complaints, noted, sometimes, consequences, identifier, enumeration, predefine, expected, mutual, recursion, wide, variety, responses, critical, complimentary, processing, graphics, kernel, gks, bindings, include, ongoing, ecs, wdsybl, classes, spcc, svde, core, som, wps, opendoc, sourced, closed, vp2, degrees, builder, fpc, facto, essentially, underlying, inventor, line, atari, hispeed, pure, exe, tpw, products, incarnations, near, compatibles, shareware, authors, swag, amount, mind, shrink, wrapped, independent, probably, resource, microprocessor, geoff, davies, monitors, channels, remote, invocation, demonstrate, concurrency, kind, simulated, normal, fair, simulate, extreme, conditions, unfair, alan, burns, professor, consequently, shared, although, actually, complete, installation, forms, out, bootstrap, undiscriminated, interprocedural, gotos, omitted, identical, technical, content, planned, needs, expansion, differ, advent, featured, survive, mainframes, minicomputers, originated, greatest, typically, important, whether, particular, corresponds, himself, referred, differentiate, documented, clarification, detailed, request, approval, precipitating, cause, wanted, size, considerations, motivated, inclusion, specify, functional, nag, country, american, ieee770x3, differed, boundaries, known, correct, errors, document, wol, creating, gui, fire, water, numerous, freebsd, backends, dev, stony, brook, optimizing, direct, least, twice, well, bliss, frontend, amigapascal, amiga, handheld, morfik, server, browser, vector, instruction, mmx, sony, playstation, emotion, engine, simd, generates, specifically, mobiles, mc68xxx, assist, interfacing, resembles, designer, inspector, editor, sinix, bs2000, siemens, according, parallel, tasking, allocated, overloads, overrides, tailored, recompiled, window, dominant, extremely, compactly, debug, accessing, floppy, drives, magnifying, speed, advantage, currently, older, smart, html5, adaption, subsequent, vitaly, miryanov, commercially, fprint, freeware, canceled, gpc, gcc, partial, painful, absence, 100, quite, descendant, longer, remobjects, backend, mono, chrome, microcontrollers, 8051, providing, convenient, legacy, develop, ones, packages, modified, lgpl, lesser, codegear, flagship, descended, d2005, d2006, d2007, rebranded, below, d2009, d2010, generics, unicode, android, ios, presence, empty, optional, cases, immediately, ifs, avoid, inner, outer, putatively, terminating, terminates, separator, terminator, needed, strict, sections, relaxed, pass, precedes, logical, outermost, const, printing, effects, whereas, iteration, detach, waiting, flow, commands, lifted, anonymous, them, associated, helps, security, inherent, those, removes, risks, caused, ability, deallocate, referenced, effect, risk, eliminated, leaks, automatic, garbage, queues, stacks, linked, refer, subfields, done, assign, fields, initialise, rule, things, intptr, represented, chars, therefore, fixed, padded, shown, above, sequences, components, every, denoted, move, inspecting, digit, leads, interactive, solved, lazy, strictly, 360, angle2, angle1, width, diameter, figure, share, maps, bytes, exact, shows, purposes, ways, unions, nonstandard, declaring, placed, excerpt, examples, involve, domains, achieved, representing, efficiently, bitwise, vectors, contiguous, readability, executes, fundamental, modern, mathematics, set2, set1
Text of the page (random words):
hine i e code that lends itself to reasonably efficient interpretation along with an interpreter for that code the pascal p system the p system compilers were named pascal p1 pascal p2 pascal p3 and pascal p4 pascal p1 was the first version and pascal p4 was the last to come from zürich the version termed pascal p1 was coined after the fact for the many different sources for pascal p that existed the compiler was redesigned to enhance portability and issued as pascal p2 this code was later enhanced to become pascal p3 with an intermediate code backward compatible with pascal p2 and pascal p4 which was not backward compatible the pascal p4 compiler interpreter can still be run and compiled on systems compatible with original pascal however it only accepts a subset of the pascal language pascal p5 created outside the zürich group accepts the full pascal language and includes iso 7185 compatibility ucsd pascal branched off pascal p2 where kenneth bowles used it to create the interpretive ucsd p system it was one of three operating systems available at the launch of the original ibm personal computer 11 ucsd pascal used an intermediate code based on byte values and thus was one of the earliest bytecode compilers apple pascal was released in 1979 for the apple 2 and apple 3 computer systems it was an implementation of or largely based on ucsd pascal pascal p1 through pascal p4 was not but rather based on the cdc 6600 60 bit word length a compiler based on the pascal p5 compiler which created native binary object files was released for the ibm system 370 mainframe computer by the australian atomic energy commission it was named the aaec pascal 8000 compiler after the abbreviation of the name of the commission 12 object pascal and turbo pascal edit apple computer created its own lisa pascal for the lisa workshop in 1982 and ported the compiler to the apple macintosh and mpw in 1985 in 1985 larry tesler in consultation with niklaus wirth defined object pascal and these extensions were incorporated in both the lisa pascal and mac pascal compilers in the 1980s anders hejlsberg wrote the blue label pascal compiler for the nascom 2 a reimplementation of this compiler for the ibm pc was marketed under the names compas pascal and polypascal before it was acquired by borland and renamed turbo pascal turbo pascal became hugely popular thanks to an aggressive pricing strategy having one of the first full screen ides and very fast turnaround time just seconds to compile link and run it was written and highly optimized entirely in assembly language making it smaller and faster than much of the competition in 1986 anders ported turbo pascal to the macintosh and incorporated apple s object pascal extensions into turbo pascal these extensions were then added back into the pc version of turbo pascal for version 5 5 at the same time microsoft also implemented the object pascal compiler 13 14 turbo pascal 5 5 had a large influence on the pascal community which began concentrating mainly on the ibm pc in the late 1980s many pc hobbyists in search of a structured replacement for basic used this product it also began to be adopted by professional developers around the same time a number of concepts were imported from c to let pascal programmers use the c based application programming interface api of microsoft windows directly these extensions included null terminated strings pointer arithmetic function pointers an address of operator and unsafe typecasts turbo pascal and other derivatives with unit or module structures are modular programming languages however it does not provide a nested module concept or qualified import and export of specific symbols other variants edit super pascal is a variant that added non numeric labels a return statement and expressions as names of types tmt pascal was the first borland compatible compiler for 32 bit dos protected mode os 2 and win32 operating systems the tmt pascal language was the first one to allow function and operator overloading the universities of wisconsin madison zürich karlsruhe and wuppertal developed the pascal sc 15 16 and pascal xsc 17 18 19 extensions for scientific computation compilers aimed at programming numerical computations development for pascal sc started in 1978 supporting iso 7185 pascal level 0 but level 2 support was added at a later stage 20 pascal sc originally targeted the z80 processor but was later rewritten for dos x86 and 68000 pascal xsc has at various times been ported to unix linux sunos hp ux aix and microsoft ibm dos with emx os 2 windows operating systems it operates by generating intermediate c source code which is then compiled to a native executable some of the pascal sc language extensions have been adopted by gnu pascal pascal sol was designed around 1983 by a french team to implement a unix like system named sol it was standard pascal level 1 with parameterized array bounds but the definition allowed alternative keywords and predefined identifiers in french and the language included a few extensions to ease system programming e g an equivalent to lseek 21 the sol team later on moved to the chorusos project to design a distributed operating system 22 ip pascal was an implementation of the pascal programming language using micropolis dos but was moved rapidly to cp m 80 running on the z80 it was moved to the 80386 machine types in 1994 and exists today as windows xp and linux implementations in 2008 the system was brought up to a new level and the resulting language termed pascaline after pascal s calculator it includes objects namespace controls dynamic arrays and many other extensions and generally features the same functionality and type protection as c it is the only such implementation that is also compatible with the original pascal implementation which is standardized as iso 7185 language constructs edit pascal in its original form is a purely procedural language and includes the traditional array of algol like control structures with reserved words such as if then else while for and case ranging on a single statement or a begin end statements block pascal also has data structuring constructs not included in the original algol 60 types like records variants pointers enumerations and sets and procedure pointers such constructs were in part inherited or inspired from simula 67 algol 68 niklaus wirth s own algol w and suggestions by c a r hoare pascal programs start with the program keyword with a list of external file descriptors as parameters 23 not required in turbo pascal etc then follows the main block bracketed by the begin and end keywords semicolons separate statements and the full stop i e a period ends the whole program or unit letter case is ignored in pascal source here is an example of the source code in use for a very simple hello world program program helloworld output begin write hello world no is required after the last statement of a block adding one adds a null statement to the program which is ignored by the compiler end data types edit a type declaration in pascal is used to define a range of values which a variable of that type is capable of storing it also defines a set of operations that are permissible to be performed on variables of that type the predefined types are data type type of values which the variable is capable of storing integer integer whole numbers real floating point numbers boolean the values true or false char a single character from an ordered character set set equivalent to an array of boolean values array a countable group of any of the preceding data types or records record a collection of any of the preceding data types string a sequence or string of characters is declared as a packed array of char with a starting index of 1 these can be assigned string constants and individual characters can be accessed as elements of the array the range of values allowed for the basic types except boolean is implementation defined functions are provided for some data conversions for conversion of real to integer the following functions are available round which rounds to integer using banker s rounding and trunc rounds towards zero the programmer has the freedom to define other commonly used data types e g byte string etc in terms of the predefined types using pascal s type declaration facility for example type byte 0 255 signed_byte 128 127 string packed array 1 255 of char often used types like byte and string are already defined in many implementations normally the system will use a word to store the data for instance the byte type may be stored in a machine integer 32 bits perhaps rather than an 8 bit value pascal does not contain language elements that allow the basic storage types to be defined more granularly this capability was included in a number of pascal extensions and follow on languages while others like modula 2 expanded the built in set to cover most machine data types like 16 bit integers the packed keyword tells the compiler to use the most efficient method of storage for the structured data types sets arrays and records rather than using one word for each element packing may slow access on machines that do not offer easy access to parts of a word subrange types edit subranges of any ordinal data type any simple type except real can also be made var x 1 10 y a z set types edit in contrast with other programming languages from its time pascal supports a set type 24 var set1 set of 1 10 set2 set of a z a set is a fundamental concept for modern mathematics and they may be used in many algorithms such a feature is useful and may be faster than an equivalent construct in a language that does not support sets for example for many pascal compilers if i in 5 10 then executes faster than if i 4 and i 11 then sets of non contiguous values can be particularly useful in terms of both performance and readability if i in 0 3 7 9 12 15 then for these examples which involve sets over small domains the improved performance is usually achieved by the compiler representing set variables as bit vectors the set operators can then be implemented efficiently as bitwise machine code operations union types edit this section is an excerpt from union type pascal edit in pascal there are two ways to create unions one is the standard way through a variant record the second is a nonstandard means of declaring a variable as absolute meaning it is placed at the same memory location as another variable or at an absolute address while all pascal compilers support variant records only some support absolute variables for the purposes of this example the following are all integer types a byte is 8 bits a word is 16 bits and an integer is 32 bits the following example shows the non standard absolute form var a integer b array 1 4 of byte absolute a c integer absolute 0 in the first example each of the elements of the array b maps to one of the specific bytes of the variable a in the second example the variable c is assigned to the exact machine address 0 in the following example a record has variants some of which share the same location as others type shape circle square triangle dimensions record case figure shape of circle diameter real square width real triangle side real angle1 angle2 0 360 end type declarations edit types can be defined from other types using type declarations type x integer y x further complex types can be constructed from simple types type a array 1 10 of integer b record x integer y char extra semicolon not strictly required end c file of a file type edit as shown in the example above pascal files are sequences of components every file has a buffer variable which is denoted by f the procedures get for reading and put for writing move the buffer variable to the next element read is introduced such that read f x is the same as x f get f write is introduced such that write f x is the same as f x put f the type text is predefined as file of char while the buffer variable could be used for inspecting the next character to be used check for a digit before reading an integer this leads to serious problems with interactive programs in early implementations but was solved later with the lazy i o concept in jensen wirth pascal strings are represented as packed arrays of chars they therefore have fixed length and are usually space padded pointer types edit pascal supports the use of pointers type pnode node node record a integer b char c pnode end var nodeptr pnode intptr integer here the variable nodeptr is a pointer to the data type node a record pointers can be used before they are declared this is a forward declaration an exception to the rule that things must be declared before they are used to create a new record and assign the value 10 and character a to the fields a and b in the record and to initialise the pointer c to the null pointer nil in pascal the statements would be new nodeptr nodeptr a 10 nodeptr b a nodeptr c nil this could also be done using the with statement as follows new nodeptr with nodeptr do begin a 10 b a c nil end inside of the scope of the with statement a and b refer to the subfields of the record pointer nodeptr and not to the record node or the pointer type pnode linked lists stacks and queues can be created by including a pointer type field c in the record unlike many languages that feature pointers pascal only allows pointers to reference dynamically created variables that are anonymous and does not allow them to reference standard static or local variables pointers also must have an associated type and a pointer to one type is not compatible with a pointer to another type e g a pointer to a char is not compatible with a pointer to an integer this helps eliminate the type security issues inherent with other pointer implementations particularly those used for pl i or c it also removes some risks caused by dangling pointers but the ability to dynamically deallocate referenced space by using the dispose function which has the same effect as the free library function found in c means that the risk of dangling pointers has not been eliminated 25 as it has in languages such as java and c which provide automatic garbage collection but which do not eliminate the related problem of memory leaks some of these restrictions can be lifted in newer dialects control structures edit pascal is a structured programming language meaning that the flow of control is structured into standard statements usually without goto commands while a b do writeln waiting if a b then writeln condition met no semicolon allowed before else else writeln condition not met for i 1 to 10 do no semicolon here as it would detach the next statement writeln iteration i repeat a a 1 until a 10 case i of 0 write zero 1 write one 2 write two 3 4 5 6 7 8 9 10 write end procedures and functions edit pascal structures programs into procedures and functions generally a procedure is used for its side effects whereas a function is used fo...
|