Add multilingual language and systems learning tracks

This commit is contained in:
Admin committed 2026-11-01 15:46:21 +08:00
1 parent 07338189fc
commit d8d1c40118
844 files changed
+6061

No files matched your search

@@ -0,0 +1,9 @@
# Objective-Pascal interoperability
[Agila University track](https://edu.agilaos.com/track.php?track=10&lang=en)
About 15 minutes per lesson. Predict, run, change, explain, then complete the check in University.
- [Lesson 1: Enable Objective-Pascal deliberately](lesson-1/lesson.html)
- [Lesson 2: Messages, selectors, and runtime contracts](lesson-2/lesson.html)
- [Lesson 3: Test a platform bridge honestly](lesson-3/lesson.html)
@@ -0,0 +1 @@
<!doctype html><html lang="en"><meta charset="utf-8"><title>Enable Objective-Pascal deliberately</title><h1>Enable Objective-Pascal deliberately</h1><p>15-minute session: read for 3 minutes, trace for 3, experiment for 7, and complete the check for 2. Spend longer whenever you need.</p><p>Objective-Pascal is Free Pascal support for Objective-C constructs, not just another name for Object Pascal classes. The mode switches <code>{$modeswitch objectivec1}</code> and <code>{$modeswitch objectivec2}</code> enable the relevant features. A later <code>{$mode ...}</code> directive resets mode switches, so order matters. Read the Free Pascal reference and annotate a source header. This Linux lab runs the preceding Object Pascal exercises; it does not provide an Objective-Pascal Apple-framework runtime.</p><h3>Practice and evidence</h3><p>Keep three notes: your prediction, the actual result, and why they match or differ. The completion check grades understanding; the practice task builds skill.</p><p><a href="https://docs.freepascal.org/daily/doc/ref/refse74.html">Language reference</a></p></html>
@@ -0,0 +1 @@
<!doctype html><html lang="en"><meta charset="utf-8"><title>Messages, selectors, and runtime contracts</title><h1>Messages, selectors, and runtime contracts</h1><p>15-minute session: read for 3 minutes, trace for 3, experiment for 7, and complete the check for 2. Spend longer whenever you need.</p><p>Objective-C interoperability requires agreement about classes, selectors, argument types, object lifetime, and the runtime ABI. Similar-looking source syntax is not enough. Compare a method declaration in an Objective-C header with its Pascal binding in a documented framework unit. Write a table of receiver, selector, parameters, result, and ownership. Do not invent a new binding from a name alone. These are useful design questions for a future Objective Ada specification, not a specification of that proposed language.</p><h3>Practice and evidence</h3><p>Keep three notes: your prediction, the actual result, and why they match or differ. The completion check grades understanding; the practice task builds skill.</p><p><a href="https://docs.freepascal.org/daily/doc/ref/refse74.html">Language reference</a></p></html>
@@ -0,0 +1 @@
<!doctype html><html lang="en"><meta charset="utf-8"><title>Test a platform bridge honestly</title><h1>Test a platform bridge honestly</h1><p>15-minute session: read for 3 minutes, trace for 3, experiment for 7, and complete the check for 2. Spend longer whenever you need.</p><p>Use a supported target compiler, framework headers, and runtime. Record the exact versions. Compile one minimal binding, execute it on the target, and verify the result and ownership behavior. A Linux Object Pascal class test cannot establish that an Apple framework bridge works. If the target is unavailable, complete the design analysis and label execution untested. Keep a separate portable core so the rest of your project remains testable.</p><h3>Practice and evidence</h3><p>Keep three notes: your prediction, the actual result, and why they match or differ. The completion check grades understanding; the practice task builds skill.</p><p><a href="https://docs.freepascal.org/daily/doc/ref/refse74.html">Language reference</a></p></html>