1119:
360:
LCC is free for personal use and may be redistributed provided all distribution media and product documentation acknowledges it. The LCC license relies on examples in multiple cases. LCC may not be sold for profit, but it may be included with other software that is sold for profit, provided LCC
206:. As of July 2011 the current version of LCC is 4.2, but much of the book still applies to this version. The major change since the book was published is in the code-generator interface, which is described in a separate document.
361:
itself is distributed for free. Per user and unlimited use licenses are available by contacting
Addison-Wesley, in particular for compilers of languages such as C++ for which a C compiler may constitute much of its work.
275:
scope offered by the engine, which is intended to reduce the threat posed by malicious mod authors. Another consideration is that games and mods written for the engine are
385:
646:
482:
Sao-Jie Chen, Guang-Huei Lin, Pao-Ann Hsiung, Yu-Hen Hu. "Hardware software co-design of a multimedia SOC platform". Section 5.6.1: LCC Compiler
Infrastructure.
178:
according to the usual definitions because products derived from LCC may not be sold, although components not derived from LCC may be sold. It was developed by
1145:
560:
639:
520:
959:
334:
295:
1123:
615:
183:
940:
849:
632:
1058:
194:
LCC is intended to be very simple to understand and is well-documented; its design is described in Fraser and Hanson's book
1030:
1078:
229:
1088:
1073:
779:
68:
1035:
764:
483:
1083:
789:
686:
681:
676:
326:
322:
1063:
774:
722:
655:
564:
97:
926:
901:
944:
886:
524:
179:
163:
906:
170:
programming language. Although its source code is available at no charge for personal use, it is not
276:
199:
171:
198:. The book includes most of the source code for version 3.6 of the compiler, which was written as a
921:
916:
878:
769:
375:
116:
255:
relies on a modified version of LCC to compile the source code of each game module or third-party
987:
752:
256:
209:
The source code for LCC is around 20,000 lines, which is much smaller than many major compilers.
820:
815:
784:
727:
717:
611:
318:
299:
221:
345:
For 32-bit
Windows machines, Lcc is used as a default if no other compiler is installed for
330:
128:
104:
931:
891:
799:
370:
264:
949:
1104:
837:
737:
109:
1139:
1007:
997:
936:
604:
458:
303:
175:
17:
977:
742:
495:
310:
counterpart named lcc-win64 exists, which has been available since April 15, 2012.
410:
1068:
272:
268:
252:
245:
712:
691:
36:
346:
249:
213:
496:"Lcc.NET: Targeting the .NET Common Intermediate Language from Standard C"
1012:
1002:
982:
827:
794:
732:
624:
260:
121:
589:
548:
696:
380:
280:
967:
864:
859:
666:
442:
415:
349:
212:
LCC can generate code for several processor architectures, including
167:
1053:
329:
support, amd64 support, additional optimisation techniques such as
992:
972:
896:
844:
832:
537:
307:
217:
203:
267:. This means that modules are oblivious to the system beyond the
854:
628:
671:
225:
437:
142:
279:
without recompilation; only the virtual machine needs to be
321:'s compiler is a heavily modified version of LCC providing
228:; there is also an LCC backend that generates Microsoft's
162:("Local C Compiler" or "Little C Compiler") is a small,
457:
Fraser, Christopher W.; Hanson, David R. (July 2001).
464:. Microsoft Research. Technical Report MSR-TR-2001-64
606:
196:
1097:
1044:
1021:
958:
877:
808:
751:
705:
137:
127:
115:
103:
93:
67:
45:
35:
603:
283:to new platforms in order to execute the modules.
602:Fraser, Christopher W.; Hanson, David R. (1995).
386:Comparison of integrated development environments
640:
8:
30:
757:
647:
633:
625:
521:"John Carmack's .plan file, 24 July, 1999"
29:
405:
403:
401:
459:"The lcc 4.x Code-Generation Interface"
397:
538:lcc-win: A Compiler system for Windows
7:
1146:C (programming language) compilers
296:integrated development environment
25:
1118:
1117:
494:Hanson, David R. (March 2004).
74:4.2 / September 4, 2002
590:Official Pelles C IDE homepage
1:
438:"Official Github Repository"
230:Common Intermediate Language
41:Dave Hanson and Chris Fraser
51:; 30 years ago
1162:
1031:Compatibility of C and C++
236:Projects incorporating LCC
1113:
760:
662:
89:
63:
1036:Comparison with Pascal
656:C programming language
352:and related products.
76:; 22 years ago
164:retargetable compiler
18:Christopher W. Fraser
567:on 14 September 2012
501:. Microsoft Research
376:Portable C compiler
32:
610:. Addison-Wesley.
1133:
1132:
873:
872:
561:"Build MEX-Files"
549:Pelles C Overview
302:which includes a
300:Microsoft Windows
157:
156:
16:(Redirected from
1153:
1121:
1120:
758:
753:Standard library
649:
642:
635:
626:
621:
609:
577:
576:
574:
572:
563:. Archived from
557:
551:
546:
540:
535:
529:
528:
523:. Archived from
517:
511:
510:
508:
506:
500:
491:
485:
480:
474:
473:
471:
469:
463:
454:
448:
447:
434:
428:
427:
425:
423:
407:
331:inline expansion
200:literate program
153:
150:
148:
146:
144:
105:Operating system
84:
82:
77:
59:
57:
52:
33:
21:
1161:
1160:
1156:
1155:
1154:
1152:
1151:
1150:
1136:
1135:
1134:
1129:
1109:
1093:
1046:
1040:
1024:other languages
1023:
1022:Comparison with
1017:
954:
892:Borland Turbo C
869:
809:Implementations
804:
747:
701:
658:
653:
618:
601:
598:
586:
581:
580:
570:
568:
559:
558:
554:
547:
543:
536:
532:
519:
518:
514:
504:
502:
498:
493:
492:
488:
481:
477:
467:
465:
461:
456:
455:
451:
436:
435:
431:
421:
419:
409:
408:
399:
394:
371:Tiny C Compiler
367:
358:
343:
316:
289:
265:virtual machine
243:
238:
192:
141:
85:
80:
78:
75:
55:
53:
50:
46:Initial release
28:
23:
22:
15:
12:
11:
5:
1159:
1157:
1149:
1148:
1138:
1137:
1131:
1130:
1128:
1127:
1114:
1111:
1110:
1108:
1107:
1105:Dennis Ritchie
1101:
1099:
1095:
1094:
1092:
1091:
1086:
1081:
1076:
1071:
1066:
1061:
1056:
1050:
1048:
1042:
1041:
1039:
1038:
1033:
1027:
1025:
1019:
1018:
1016:
1015:
1010:
1005:
1000:
995:
990:
985:
980:
975:
970:
964:
962:
956:
955:
953:
952:
947:
934:
929:
924:
919:
914:
909:
904:
899:
894:
889:
883:
881:
875:
874:
871:
870:
868:
867:
862:
857:
852:
847:
842:
841:
840:
830:
825:
824:
823:
812:
810:
806:
805:
803:
802:
797:
792:
787:
782:
780:Dynamic memory
777:
772:
767:
761:
755:
749:
748:
746:
745:
740:
735:
730:
725:
720:
715:
709:
707:
703:
702:
700:
699:
694:
689:
684:
679:
674:
669:
663:
660:
659:
654:
652:
651:
644:
637:
629:
623:
622:
616:
597:
594:
593:
592:
585:
584:External links
582:
579:
578:
552:
541:
530:
527:on 2008-05-12.
512:
486:
475:
449:
429:
396:
395:
393:
390:
389:
388:
383:
378:
373:
366:
363:
357:
354:
342:
339:
315:
312:
288:
285:
263:targeting its
242:
239:
237:
234:
191:
188:
155:
154:
139:
135:
134:
131:
125:
124:
119:
113:
112:
110:Cross-platform
107:
101:
100:
95:
91:
90:
87:
86:
73:
71:
69:Stable release
65:
64:
61:
60:
47:
43:
42:
39:
26:
24:
14:
13:
10:
9:
6:
4:
3:
2:
1158:
1147:
1144:
1143:
1141:
1126:
1125:
1116:
1115:
1112:
1106:
1103:
1102:
1100:
1096:
1090:
1087:
1085:
1082:
1080:
1077:
1075:
1072:
1070:
1067:
1065:
1062:
1060:
1057:
1055:
1052:
1051:
1049:
1043:
1037:
1034:
1032:
1029:
1028:
1026:
1020:
1014:
1011:
1009:
1008:Visual Studio
1006:
1004:
1001:
999:
998:GNOME Builder
996:
994:
991:
989:
986:
984:
981:
979:
976:
974:
971:
969:
966:
965:
963:
961:
957:
951:
948:
946:
942:
938:
937:Visual Studio
935:
933:
930:
928:
925:
923:
920:
918:
915:
913:
910:
908:
905:
903:
900:
898:
895:
893:
890:
888:
885:
884:
882:
880:
876:
866:
863:
861:
858:
856:
853:
851:
848:
846:
843:
839:
836:
835:
834:
831:
829:
826:
822:
819:
818:
817:
814:
813:
811:
807:
801:
798:
796:
793:
791:
788:
786:
783:
781:
778:
776:
773:
771:
768:
766:
763:
762:
759:
756:
754:
750:
744:
741:
739:
736:
734:
731:
729:
726:
724:
721:
719:
716:
714:
711:
710:
708:
704:
698:
695:
693:
690:
688:
685:
683:
680:
678:
675:
673:
670:
668:
665:
664:
661:
657:
650:
645:
643:
638:
636:
631:
630:
627:
619:
617:0-8053-1670-1
613:
608:
607:
600:
599:
595:
591:
588:
587:
583:
566:
562:
556:
553:
550:
545:
542:
539:
534:
531:
526:
522:
516:
513:
497:
490:
487:
484:
479:
476:
460:
453:
450:
445:
444:
439:
433:
430:
418:
417:
412:
411:"LCC License"
406:
404:
402:
398:
391:
387:
384:
382:
379:
377:
374:
372:
369:
368:
364:
362:
355:
353:
351:
348:
340:
338:
336:
332:
328:
324:
320:
313:
311:
309:
305:
301:
297:
293:
286:
284:
282:
278:
274:
270:
266:
262:
258:
254:
251:
247:
240:
235:
233:
231:
227:
223:
219:
215:
210:
207:
205:
201:
197:
189:
187:
185:
181:
177:
176:free software
173:
169:
165:
161:
152:
140:
136:
132:
130:
126:
123:
120:
118:
114:
111:
108:
106:
102:
99:
96:
92:
88:
72:
70:
66:
62:
48:
44:
40:
38:
34:
19:
1122:
978:Code::Blocks
950:Watcom C/C++
911:
738:Preprocessor
718:Header files
605:
596:Bibliography
569:. Retrieved
565:the original
555:
544:
533:
525:the original
515:
503:. Retrieved
489:
478:
466:. Retrieved
452:
441:
432:
420:. Retrieved
414:
359:
344:
325:as well as
317:
298:package for
291:
290:
271:and limited
269:system calls
244:
211:
208:
195:
193:
184:David Hanson
180:Chris Fraser
159:
158:
37:Developer(s)
1069:Objective-C
850:Windows CRT
306:of LCC. An
273:file system
246:id Software
172:open-source
133:LCC License
1045:Descendant
917:Norcroft C
743:Data types
692:Embedded C
571:6 November
392:References
94:Written in
81:2002-09-04
27:C compiler
1047:languages
879:Compilers
821:libhybris
723:Operators
713:Functions
347:MathWorks
341:MathWorks
292:lcc-win32
250:id Tech 3
1140:Category
1124:Category
1098:Designer
1013:NetBeans
1003:KDevelop
983:CodeLite
828:dietlibc
795:Variadic
770:File I/O
706:Features
365:See also
319:Pelles C
314:Pelles C
277:portable
261:bytecode
166:for the
122:Compiler
988:Eclipse
941:Express
697:MISRA C
505:22 July
381:Small-C
356:License
333:and an
287:lcc-win
241:Quake 3
145:.github
138:Website
129:License
79: (
54: (
968:Anjuta
865:uClibc
860:Newlib
838:EGLIBC
816:Bionic
785:String
733:Syntax
728:String
667:ANSI C
614:
468:5 July
443:GitHub
422:5 July
416:GitHub
350:MATLAB
294:is an
281:ported
253:engine
224:, and
202:using
168:ANSI C
1079:Limbo
993:Geany
973:CLion
897:Clang
845:klibc
833:glibc
800:POSIX
499:(PDF)
462:(PDF)
308:amd64
259:into
218:SPARC
214:Alpha
204:noweb
1089:Vala
1074:Alef
960:IDEs
927:SDCC
855:musl
790:Time
775:Math
765:Char
612:ISBN
573:2013
507:2012
470:2011
424:2011
304:fork
222:MIPS
182:and
149:/lcc
117:Type
56:1994
49:1994
1054:C++
945:C++
932:TCC
922:PCC
912:LCC
907:ICC
902:GCC
887:ACK
687:C23
682:C17
677:C11
672:C99
335:IDE
327:C17
323:C11
257:mod
248:'s
226:x86
190:LCC
174:or
160:LCC
147:.io
143:drh
31:LCC
1142::
1084:Go
1059:C#
943:,
939:,
440:.
413:.
400:^
337:.
232:.
220:,
216:,
186:.
1064:D
648:e
641:t
634:v
620:.
575:.
509:.
472:.
446:.
426:.
151:/
98:C
83:)
58:)
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.