Knowledge (XXG)

Profile Scripting Language

Source 📝

662: 258:
implemented as extensions to the PSL compiler itself, and are executed at COMPILE time in order to generate runtime code. This feature can generate heavily optimized or specialized code depending on compile time or program conditions. This capability was considered to be critical to the ability to generate code that optimized both a MUMPS global database and multiple commercial RDMS's from the same PSL source.
234:, in April 2004. In later versions the compiler has been maintained and significantly enhanced by Frans Witte, a Senior Technical Lead at FIS, and Dan Russell, formerly the Head of Technology Development at Sanchez and now a remote Senior Technical consultant to FIS. Frans and Dan have focused on implementing the database independent features of the language, and more recently the Java source target code. 22: 634: 253:
PSL interprets legacy MUMPS code, though some legacy commands (such as GO, NEW and KILL) can be disabled or marked as deprecated (generating compiler warnings). Direct references to MUMPS globals can also be disabled or deprecated. Numerous PSL compiler directives (e.g., #IF/#ELSE, #ACCEPT) were also
294:
As of June, 2011, PSL remains the source code language for the FIS Profile banking system, deployed in 26 countries and over 200 institutions, including some of the world’s largest banks. While Java and commercial RDMS deployments are possible in the future, today 100% of the deployments are on the
229:
Frank Sanchez developed the original language semantics, syntax, parser, compiler and optimizer, database interface, schema binding, intrinsic classes and methods over the Christmas holiday in 1998 and early 1999. He was assisted in the development of the initial commercial releases (version 1 - 2)
266:
The initial release of PSL (originally called M++) was in the summer of 1999, as part of the Profile version 6.2. In that release, less than 5% of the MUMPS code was converted to PSL, though new development was predominantly in PSL source code and analysis for widespread reverse engineering was
257:
PSL allows a Class to be defined as either Intrinsic or Extrinsic. Extrinsic classes implement Class, Method and Instance variable definitions consistent with common OO languages, and are generated into compiled code (accessed at runtime). Intrinsic Classes and methods, on the other hand are
254:
added to the PSL language, as were Java style blocks and comments, modern error handling semantics and white space. Two MUMPS language elements were eliminated initially (M-style blocks and goto label+offset) as they could not be supported within the PSL object scope handling.
221:
concepts such as classes, methods, encapsulation, inheritance, and strong data typing as extensions to the MUMPS language. PSL was initially conceived in December 1998 by Frank Sanchez, then President of Sanchez Computer Associates, as a transformation tool that could
267:
underway. The Profile application conversion from MUMPS to PSL was 100% completed in 2006, with the release of Profile version 7.0. Profile version 7.0 was also the first commercial version of the application that could be targeted to run on either a
230:
by the late Bob Chiang, the Head of Data-Qwik tool development at Sanchez, and Mark Spier, a Senior Software Developer with Sanchez at the time. Sanchez Computer Associates (SCAI) was acquired by Fidelity National Financial (FNF), now
286:-based development environment, with integrated schema and code management and numerous interactive plug-ins. Jim Joyce, a senior R&D Developer at FIS has been responsible for much of the IDE vision and development. 242:
The initial language concepts included the ability to bind the source code to a database schema which generates dynamic Data Access Classes (preempting similar persistent class generation in
366: 282:
as a target database and to optionally generate either GT.M MUMPS or Java target code from the same PSL source code. Furthermore, PSL is supported by a modern
43: 691: 650: 655: 645: 247: 226:
a very large and complex banking application (Fidelity National Information Services 'Profile') which was written predominantly in MUMPS.
94: 386: 359: 66: 391: 329: 113: 73: 396: 696: 665: 597: 470: 352: 47: 80: 640: 618: 572: 545: 520: 480: 612: 515: 485: 62: 587: 582: 525: 505: 243: 218: 202: 32: 530: 426: 409: 339: 334: 51: 36: 540: 495: 577: 460: 686: 446: 137: 87: 375: 304: 198: 132: 451: 283: 295:
GT.M MUMPS target language and database, with the exception of a single Oracle DBMS deployment.
431: 246:) and database methods that could be code generated into either MUMPS globals or a commercial 223: 162: 272: 250:. The PSL Data Access Classes are identified in the source code as Record<classes>. 144: 167: 680: 550: 231: 206: 602: 441: 21: 510: 607: 344: 500: 490: 324: 279: 567: 535: 419: 465: 475: 436: 414: 195: 179: 557: 268: 348: 278:
Currently PSL is continuing to be actively enhanced to support
592: 562: 15: 330:
PSL Programming Guide (old version distributed with PIP)
173: 161: 153: 143: 131: 275:, with GT.M MUMPS source code as the PSL target. 360: 8: 126: 50:. Unsourced material may be challenged and 633: 367: 353: 345: 125: 114:Learn how and when to remove this message 207:Fidelity National Information Services 7: 48:adding citations to reliable sources 217:PSL is a language that implements 14: 692:MUMPS programming language family 203:object-oriented language features 661: 660: 632: 20: 205:. It is currently developed by 1: 63:"Profile Scripting Language" 713: 340:Profile Web Tools Overview 188:Profile Scripting Language 127:Profile Scripting Language 628: 405: 382: 178: 194:) is a superset of the 697:MUMPS implementations 376:Programming languages 271:MUMPS database or an 335:Interactive SQL Help 305:Financial technology 199:programming language 44:improve this article 154:First appeared 128: 325:PIP on SourceForge 674: 673: 656:Non-English-based 273:Oracle 9 database 238:Language concepts 219:object orientated 209:(hereafter FIS). 185: 184: 124: 123: 116: 98: 704: 664: 663: 636: 635: 369: 362: 355: 346: 224:reverse engineer 145:Designed by 129: 119: 112: 108: 105: 99: 97: 56: 24: 16: 712: 711: 707: 706: 705: 703: 702: 701: 677: 676: 675: 670: 624: 401: 378: 373: 321: 315: 313: 301: 292: 264: 240: 215: 120: 109: 103: 100: 57: 55: 41: 25: 12: 11: 5: 710: 708: 700: 699: 694: 689: 679: 678: 672: 671: 669: 668: 658: 653: 648: 643: 629: 626: 625: 623: 622: 615: 610: 605: 600: 595: 590: 585: 580: 575: 570: 565: 560: 555: 554: 553: 543: 538: 533: 528: 523: 518: 513: 508: 503: 498: 493: 488: 483: 478: 473: 468: 463: 458: 457: 456: 455: 454: 449: 434: 429: 424: 423: 422: 412: 406: 403: 402: 400: 399: 394: 389: 383: 380: 379: 374: 372: 371: 364: 357: 349: 343: 342: 337: 332: 327: 320: 319:External links 317: 312: 309: 308: 307: 300: 297: 291: 288: 263: 260: 239: 236: 214: 211: 183: 182: 176: 175: 171: 170: 168:Cross-platform 165: 159: 158: 155: 151: 150: 147: 141: 140: 135: 122: 121: 28: 26: 19: 13: 10: 9: 6: 4: 3: 2: 709: 698: 695: 693: 690: 688: 687:FIS (company) 685: 684: 682: 667: 659: 657: 654: 652: 649: 647: 644: 642: 639: 631: 630: 627: 621: 620: 616: 614: 611: 609: 606: 604: 601: 599: 596: 594: 591: 589: 586: 584: 581: 579: 576: 574: 571: 569: 566: 564: 561: 559: 556: 552: 551:Object Pascal 549: 548: 547: 544: 542: 539: 537: 534: 532: 529: 527: 524: 522: 519: 517: 514: 512: 509: 507: 504: 502: 499: 497: 494: 492: 489: 487: 484: 482: 479: 477: 474: 472: 469: 467: 464: 462: 459: 453: 450: 448: 445: 444: 443: 440: 439: 438: 435: 433: 430: 428: 425: 421: 418: 417: 416: 413: 411: 408: 407: 404: 398: 395: 393: 390: 388: 385: 384: 381: 377: 370: 365: 363: 358: 356: 351: 350: 347: 341: 338: 336: 333: 331: 328: 326: 323: 322: 318: 316: 310: 306: 303: 302: 298: 296: 289: 287: 285: 281: 276: 274: 270: 261: 259: 255: 251: 249: 245: 237: 235: 233: 227: 225: 220: 212: 210: 208: 204: 200: 197: 193: 189: 181: 177: 174:Influenced by 172: 169: 166: 164: 160: 156: 152: 149:Frank Sanchez 148: 146: 142: 139: 136: 134: 130: 118: 115: 107: 104:November 2017 96: 93: 89: 86: 82: 79: 75: 72: 68: 65: –  64: 60: 59:Find sources: 53: 49: 45: 39: 38: 34: 29:This article 27: 23: 18: 17: 651:Generational 641:Alphabetical 637: 617: 442:Visual Basic 314: 293: 277: 265: 256: 252: 241: 228: 216: 191: 187: 186: 110: 101: 91: 84: 77: 70: 58: 42:Please help 30: 646:Categorical 681:Categories 511:JavaScript 387:Comparison 311:References 201:that adds 138:Procedural 74:newspapers 608:Smalltalk 31:does not 666:Category 432:Assembly 392:Timeline 299:See also 262:Releases 133:Paradigm 619:more... 598:Scratch 501:Haskell 491:Fortran 447:classic 397:History 284:Eclipse 280:IBM DB2 213:History 88:scholar 52:removed 37:sources 638:Lists: 573:Python 568:Prolog 546:Pascal 536:MATLAB 521:Kotlin 481:Erlang 420:Simula 90:  83:  76:  69:  61:  613:Swift 603:Shell 516:Julia 486:Forth 476:COBOL 437:BASIC 415:ALGOL 196:MUMPS 180:MUMPS 95:JSTOR 81:books 588:Rust 583:Ruby 558:Perl 526:Lisp 506:Java 452:.NET 290:Uses 269:GT.M 248:RDMS 244:Java 157:1998 67:news 35:any 33:cite 593:SQL 563:PHP 531:Lua 466:C++ 427:APL 410:Ada 232:FIS 192:PSL 46:by 683:: 541:ML 496:Go 471:C# 163:OS 578:R 461:C 368:e 361:t 354:v 190:( 117:) 111:( 106:) 102:( 92:· 85:· 78:· 71:· 54:. 40:.

Index


cite
sources
improve this article
adding citations to reliable sources
removed
"Profile Scripting Language"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message
Paradigm
Procedural
Designed by
OS
Cross-platform
MUMPS
MUMPS
programming language
object-oriented language features
Fidelity National Information Services
object orientated
reverse engineer
FIS
Java
RDMS
GT.M
Oracle 9 database

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.