PEEP OFFICIAL BANGLADEH
PEEP OFFICIAL BANGLADEH
PPL (PEEP Programming Language) হলো একটি একীভূত (unified), সুনির্দিষ্ট (deterministic), হাই-লেভেল, কম্পাইল্ড এবং ইন্টারপ্রেটেড প্রোগ্রামিং ভাষা যা PEEP OS-এর মূল সিস্টেম এবং অ্যাপ্লিকেশন ডেভেলপমেন্ট ফ্রেমওয়ার্ক হিসেবে ডিজাইন করা হয়েছে।
PPL প্রধানত দুটি ভিত্তিমূল নীতির ওপর প্রতিষ্ঠিত: ১. প্রাকৃতিক ভাষার সুস্পষ্টতা (Absolute Natural Language Syntactic Clarity): ঐতিহ্যবাহী কোডের জটিল চিহ্ন, ব্যাকরণগত রূপ এবং রহস্যময় প্রচিহ্ন (যেমন {, }, ;, &&, ||, !=) সম্পূর্ণ দূর করে সহজ ও বোধগম্য ইংরেজি ভাষার ওপর ভিত্তি করে গঠন তৈরি করা হয়েছে। ২. একীভূত ফ্রন্টএন্ড এবং ব্যাকএন্ড প্যারাডাইম: সিস্টেমের নিম্নস্তরের কার্নেল অপারেশন (মেমোরি ম্যানেজমেন্ট, প্রসেস কন্ট্রোল, নেটওয়ার্ক সকেট) এবং দৃষ্টিনন্দন ফ্রন্টএন্ড ডিজাইন (GUI কম্পোনেন্টস, লেআউট ইঞ্জিন, হার্ডওয়্যার অ্যাক্সিলারেটেড গ্রাফিক্স) একই প্রজেক্টের মধ্যে একই ব্যাকরণীয় নিয়মে কাজ করে।
PEEP OS সরাসরি হার্ডওয়্যার abstractions, সিস্টেম স্যান্ডবক্সিং, গ্রাফিক্যাল কম্পোজিটিং এবং লজিক লেয়ারকে একীভূত করে। PPL হলো এই অপারেটিং সিস্টেমের প্রধান ইন্টারফেস। অ্যাপ্লিকেশনের দৃষ্টিনন্দন নিয়ন্ত্রণসমূহ (যেমন Window, Button) এবং ব্যাকএন্ড সিস্টেম প্রাইমিটিভসমূহ (যেমন Process, Memory) একই Element Architecture Model অনুসরণ করে।
PPL কম্পাইলার সোর্স কোডকে UTF-8 ফরম্যাটে গ্রহণ করে এবং PEEP OS-এর নিজস্ব বাইটকোড বা LLVM-IR বাইনারিতে রূপান্তর করে।
+-------------------------------------------------------+
| PPL Source File (.ppl) |
+-------------------------------------------------------+
|
v
+-------------------------------------------------------+
| PEEP Lexer |
| (UTF-8 নরম্যালাইজেশন, ইনডেন্টেশন এবং টোকেন বিশ্লেষণ) |
+-------------------------------------------------------+
|
v
+-------------------------------------------------------+
| PEEP Parser |
| (EBNF ব্যাকরণ ভ্যালিডেশন, ব্লক স্ট্রাকচার বিশ্লেষণ, AST) |
+-------------------------------------------------------+
|
v
+-------------------------------------------------------+
| Semantic Analyzer & Scope |
| (এলিমেন্ট বাইন্ডিং, টাইপ চেকিং এবং সিকিউরিটি পলিসি) |
+-------------------------------------------------------+
|
v
+-------------------------------------------------------+
| PEEP Intermediate Representation |
| (PPL-IR Builder) |
+-------------------------------------------------------+
/ \
v v
+-----------------------+ +-----------------------+
| PEEP Bytecode Engine | | LLVM Machine Codegen |
| (JIT/Interpreter) | | (PEEP OS Binary Kernel|
+-----------------------+ +-----------------------+
এনকোডিং: PPL সোর্স কোড ফাইল অবশ্যই স্ট্যান্ডার্ড UTF-8 এনকোডেড হতে হবে।
ইনডেন্টেশন ও স্পেসিং: ব্লক নির্ধারণে কোডের বিন্যাস স্পষ্ট রাখতে ইনডেন্টেশন ব্যবহার করা হয়। ব্লকের শুরু ও শেষ নির্দিষ্ট করার জন্য জোড়া টোকেন (যেমন create ... end <identifier>, define ... end Task, check ... end check) প্রয়োগ করা বাধ্যতামূলক।
কমেন্ট নির্দেশিকা: একক লাইনের কমেন্টের জন্য // ব্যবহার করা হয়। একাধিক লাইনের কমেন্ট ব্লক /* এবং */ দ্বারা ঘেরা থাকে।
PPL-এর অফিশিয়াল ব্যাকরণ Extended Backus-Naur Form (EBNF) নিয়মে নিচে সংজ্ঞায়িত করা হলো:
SourceFile ::= StatementList ;
StatementList ::= { Statement [ Newline ] } ;
Statement ::= ElementDeclaration
| TaskDefinition
| PropertyAssignment
| CallStatement
| CheckStatement
| EventDeclaration
| PrintStatement
| ActionStatement ;
ElementDeclaration ::= "create" Identifier Identifier [ "at" StringLiteral ] Newline
StatementList
"end" Identifier ;
TaskDefinition ::= "define" "Task" Identifier [ "with" ParameterList ] Newline
StatementList
"end" "Task" ;
ParameterList ::= Identifier { "and" Identifier } ;
PropertyAssignment ::= "set" Identifier [ "." Identifier ] "to" Expression ;
CallStatement ::= "call" Identifier "." Identifier [ "with" ArgumentList ]
| "call" Identifier "." Identifier [ "to" Expression ] [ "on" Expression ] ;
ArgumentList ::= Expression { "and" Expression } ;
CheckStatement ::= "check" "if" Expression Newline
StatementList
[ "otherwise" Newline StatementList ]
"end" "check" ;
EventDeclaration ::= "on" [ Identifier "." ] Identifier Newline
StatementList
"end" [ "on" | Identifier ] ;
PrintStatement ::= "print" Expression ;
ActionStatement ::= "add" Expression "to" Identifier
| "return" Expression ;
Expression ::= PrimaryExpression { BinaryOperator PrimaryExpression } ;
PrimaryExpression ::= Identifier | StringLiteral | NumberLiteral | BooleanLiteral | MethodCallExpr ;
MethodCallExpr ::= "call" Identifier "." Identifier [ "with" ArgumentList ] ;
BinaryOperator ::= "is" | "is" "greater" "than" | "is" "less" "than" | "combined" "with" ;
BooleanLiteral ::= "true" | "false" ;
Identifier ::= ( Letter | "_" ) { Letter | Digit | "_" } ;
StringLiteral ::= '"' { Character } '"' ;
NumberLiteral ::= [ "-" ] Digit { Digit } [ "." Digit { Digit } ] ;
PPL-এ সমস্ত ডেটা ও উপাদান মূল Element Model থেকে তৈরি। এটিকে প্রধানত দুটি ভাগে ভাগ করা যায়: ১. ব্যাকএন্ড সিস্টেম এলিমেন্টস (Backend System Elements): ওএস লেভেলের অপারেটিং হ্যান্ডেল, মেমোরি, প্রসেস এবং নেটওয়ার্ক কন্ট্রোলার। ২. ফ্রন্টএন্ড জিইউআই এলিমেন্টস (Frontend GUI Elements): স্ক্রিন ভিজ্যুয়াল কম্পোনেন্ট, ইনপুট ফিল্ড এবং লেআউট স্ট্রাকচার।
ম্যানেজড এলিমেন্ট পুল (Garbage Collection): সমস্ত GUI উপাদান এবং সাধারণ স্ট্রিং ও সংখ্যা PEEP OS-এর স্বয়ংক্রিয় গারবেজ সংগ্রাহকের (GC) অধীনে পরিচালিত হয়।
আনম্যানেজড বাফার মেমোরি (Memory Element): সরাসরি মেমোরি ব্যবহারের ক্ষেত্রে Memory অবজেক্টের মাধ্যমে নির্দিষ্ট বাইট বাফার বরাদ্দ করে সুরক্ষিত কিন্তু সরাসরি RAM হ্যান্ডলিং নিশ্চিত করা হয়।
উদ্দেশ্য: স্ট্রিং ডেটা, বাক্য, অক্ষর ম্যানিপুলেশন এবং টেক্সট প্রসেসিং পরিচালনা করে।
সাব-এলিমেন্ট (১০): কন্টেন্ট, লেংথ, এনকোডিং, কেস, সাবটেক্সট, সার্চ, রিপ্লেসমেন্ট, স্প্লিটার, প্যাটার্ন, ট্রিম।
গুণাবলি (Properties):
content (টাইপ: Text, ডিফল্ট: ""): অভ্যন্তরীণ UTF-8 অক্ষর ডেটা।
length (টাইপ: Number, রিড-অনলি): মোট অক্ষরের সংখ্যা।
is_empty (টাইপ: Logic, রিড-অনলি): দৈর্ঘ্য ০ হলে true হয়।
encoding (টাইপ: Text, ডিফল্ট: "UTF-8"): অক্ষর এনকোডিং ফরম্যাট।
ইভেন্ট (Events): on_change (টেক্সট পরিবর্তিত হলে সংকেত পাঠায়)।
পদ্ধতি (Methods): join, split, upper, lower, find, replace, trim
ডিফল্ট আচরণ: UTF-8 প্লেইন টেক্সট স্ট্রিং, প্রাথমিক মান ""।
কোড উদাহরণ:
create Text username
set content to "Alice"
end username
set username to "Alice"
call username.upper
উদ্দেশ্য: সর্ব সাংখ্যিক গণনা, পূর্ণসংখ্যা (Integer) এবং দশমিক মূল্য (Float) পরিচালনা করে।
সাব-এলিমেন্ট (৮): ভ্যালু, টাইপ, প্রিসিশন, মিনিমাম, ম্যাক্সিমাম, রাউন্ডিং, ফরম্যাট, ইউনিট।
গুণাবলি (Properties):
value (টাইপ: Number, ডিফল্ট: 0): 64-বিট প্রিসিশন যুক্ত নম্বর।
is_decimal (টাইপ: Logic, রিড-অনলি): দশমিক অংশ থাকলে true হয়।
is_positive (টাইপ: Logic, Read-Only): মান ০ বা তার বেশি হলে true হয়।
ইভেন্ট (Events): on_exceed, on_change
পদ্ধতি (Methods): round, absolute, clamp, to_text
ডিফল্ট আচরণ: 64-bit প্রিসিশন float/integer হাইব্রিড primitive, ০ আদিতে সেট করা।
কোড উদাহরণ:
create Number score
set value to 100
end score
set score to 100
add 50 to score
উদ্দেশ্য: বুলিয়ান এক্সপ্রেশন, সত্য/মিথ্যা শর্তাদি এবং রুল যাচাই মূল্যাংকন করে।
সাব-এলিমেন্ট (৬): স্টেট, রুল, আলটারনেটিভ, ফলব্যাক, কম্পারিসন, লুপ।
গুণাবলি (Properties):
state (টাইপ: Logic, ডিফল্ট: false): সত্য বা মিথ্যা অবস্থা (true/false)।
result (টাইপ: Text, রিড-অনলি): লজিকাল মূল্যায়নের ফলাফল ডায়াগনস্টিক বিবরণ।
ইভেন্ট (Events): on_true, on_false
পদ্ধতি (Methods): toggle, evaluate
ডিফল্ট আচরণ: সত্য/মিথ্যা মূল্যাংকন করে এবং কোড এক্সিকিউশন ফ্লো নিয়ন্ত্রণ করে।
কোড উদাহরণ:
check if score is greater than 100
print "High Score!"
otherwise
print "Keep trying!"
end check
উদ্দেশ্য: ডাইনামিক অ্যারেই এবং ক্রমানুসারে সাজানো উপাদানের গ্রুপ পরিচালনা করে।
সাব-এলিমেন্ট (৮): আইটেম, কাউন্ট, ফার্স্ট, লাস্ট, ইনডেক্স, সর্ট, ফিল্টার, ম্যাপিং।
গুণাবলি (Properties):
count (টাইপ: Number, রিড-অনলি): সংরক্ষিত আইটেমের মোট সংখ্যা।
is_empty (টাইপ: Logic, রিড-অনলি): সংগ্রহের উপাদান সংখ্যা ০ হলে true হয়।
first_item (টাইপ: Element, রিড-অনলি): প্রথম ইনডেক্সের আইটেম।
last_item (টাইপ: Element, রিড-অনলি): শেষ ইনডেক্সের আইটেম।
ইভেন্ট (Events): on_add, on_remove, on_clear
পদ্ধতি (Methods): add, remove, sort, filter, clear, get_at
ডিফল্ট আচরণ: ডাইনামিক জিরো-ইনডেক্সড ক্রমানুসারে সাজানো অ্যারে।
কোড উদাহরণ:
create Collection app_list
end app_list
add "Calculator" to app_list
add "Notes" to app_list
উদ্দেশ্য: পুনরাবৃত্তিযোগ্য লজিক, ফাংশন, রুটিন এবং প্রসেস নির্দিষ্ট করে।
সাব-এলিমেন্ট (৭): ইনপুট, আউটপুট, বডি, রানার, স্কোপ, আসিংক, রিটার্ন।
গুণাবলি (Properties):
name (টাইপ: Text, রিড-অনলি): টাস্কের নাম।
is_running (টাইপ: Logic, রিড-অনলি): সক্রিয়ভাবে চালিত হচ্ছে কিনা তা প্রকাশ করে।
last_run_time (টাইপ: Number, রিড-অনলি): শেষবার টাস্কটি চলতে যত মিলিসেকেন্ড সময় লেগেছে।
ইভেন্ট (Events): on_start, on_complete, on_error
পদ্ধতি (Methods): run, stop, defer
ডিফল্ট আচরণ: সিনক্রোনাস ব্লক এক্সিকিউশন যা ফলাফল অথবা খালি (void) মান ফেরত দেয়।
কোড উদাহরণ:
define Task greet with user_name
return "Hello " combined with user_name
end Task
উদ্দেশ্য: ব্যাকগ্রাউন্ড OS-স্তরের থ্রেড, সিস্টেম প্রসেস এবং অ্যাপ্লিকেশন টাস্ক নিয়ন্ত্রণ করে।
সাব-এলিমেন্ট (৮): আইডেন্টিফায়ার, প্রাইয়োরিটি, মেমোরি ইউসেজ, স্ট্যাটাস, প্যারেন্ট, চাইল্ড, CPU কোর, অ্যাফিনিটি।
গুণাবলি (Properties):
id (টাইপ: Number, রিড-অনলি): অপারেটিং সিস্টেম দ্বারা বরাদ্দকৃত Process ID (PID)।
status (টাইপ: Text, রিড-অনলি): বর্তমান অবস্থা ("Running", "Paused", "Stopped")।
cpu_usage (টাইপ: Number, রিড-অনলি): ব্যবহূত প্রসেসর ক্ষমতার শতাংশ।
memory_usage (টাইপ: Number, Read-Only): বাইটে পরিমাপকৃত মেমোরির পরিমাণ।
ইভেন্ট (Events): on_launch, on_crash, on_terminate
পদ্ধতি (Methods): start, pause, resume, kill, set_priority
ডিফল্ট আচরণ: PEEP OS কার্নেল দ্বারা পরিচালিত একটি পৃথক আইসোলেটেড থ্রেড।
কোড উদাহরণ:
create Process bg_sync
end bg_sync
call bg_sync.start with "SyncEngine.ppl"
উদ্দেশ্য: সরাসরি মেমোরি অ্যালোকেশন, আনম্যানেজড বাইট বাফার এবং সিস্টেম RAM নিয়ন্ত্রণ করে।
সাব-এলিমেন্ট (৭): অ্যাড্রেস, সাইজ, বাফার, অ্যালোকেশন, পয়েন্টার, ডাম্প, গার্বেজ।
গুণাবলি (Properties):
size_bytes (টাইপ: Number, ডিফল্ট: 0): বরাদ্দকৃত মেমোরি স্পেস (বাইটে)।
allocated (টাইপ: Logic, রিড-অনলি): মেমোরি সুনির্দিষ্টভাবে পয়েন্ট করা আছে কিনা।
free_space (টাইপ: Number, রিড-অনলি): অব্যবহৃত মেমোরির পরিমাণ।
ইভেন্ট (Events): on_low_memory, on_leak
পদ্ধতি (Methods): allocate, free, copy, clear
ডিফল্ট আচরণ: সুরক্ষিত কিন্তু আনম্যানেজড মেমোরি বাফার অবজেক্ট।
কোড উদাহরণ:
create Memory frame_buffer
end frame_buffer
call frame_buffer.allocate with size 1024
উদ্দেশ্য: সিস্টেম ফাইল পরিচালনা — ডেটা পড়া, ফাইল তৈরি, সংশোধন এবং অনুমতি ব্যবস্থাপনা।
সাব-এলিমেন্ট (৯): পথ (Path), এক্সটেনশন, সাইজ, অ্যাক্সেস, স্ট্রিম, লাইন, কন্টেন্ট, মেটাডেটা, লক।
গুণাবলি (Properties):
path (টাইপ: Text, ডিফল্ট: ""): ফাইলের সম্পূর্ণ সিস্টেম পাথ।
exists (টাইপ: Logic, রিড-অনলি): ফাইলের অস্তিত্ব থাকলে true হয়।
size (টাইপ: Number, রিড-অনলি): ফাইলের আয়তন (বাইটে)।
is_read_only (টাইপ: Logic, ডিফল্ট: false): ফাইলটি শুধুমাত্র পাঠযোগ্য কিনা।
ইভেন্ট (Events): on_modify, on_delete, on_open
পদ্ধতি (Methods): read, write, append, delete, move
ডিফল্ট আচরণ: UTF-8 টেক্সট বা বাইনারি ফাইল স্ট্রিং হ্যান্ডলার।
কোড উদাহরণ:
create File log_file at "/system/logs/app.log"
end log_file
call log_file.append with "App started successfully."
উদ্দেশ্য: ডিরেক্টরি স্ট্রাকচার, ফাইল গ্রুপ এবং ডিরেক্টরি ট্র্যাকিং পরিচালনা করে।
সাব-এলিমেন্ট (৭): পথ (Path), ফাইলস, সাবফোল্ডার, প্যারেন্ট, হায়ারার্কি, অনুমতি, ওয়াচার।
গুণাবলি (Properties):
path (টাইপ: Text, ডিফল্ট: ""): ডিরেক্টরি পাথ।
file_count (টাইপ: Number, রিড-অনলি): ভেতরের ফাইলের মোট সংখ্যা।
folder_count (টাইপ: Number, রিড-অনলি): অন্তর্ভুক্ত সাব-ফোল্ডারের সংখ্যা।
ইভেন্ট (Events): on_file_added, on_file_removed
পদ্ধতি (Methods): create, delete, scan, move
ডিফল্ট আচরণ: ফোল্ডার ওয়াচার এবং ফাইল কন্টেইনার অবজেক্ট।
কোড উদাহরণ:
create Folder doc_dir at "/users/docs"
end doc_dir
call doc_dir.scan
উদ্দেশ্য: স্ট্রাকচারড সংরক্ষন, SQL/NoSQL কুয়েরি এবং পারসিস্টেন্ট ডেটা টেবিল পরিচালনা করে।
সাব-এলিমেন্ট (৮): টেবিল, কুয়েরি, রেকর্ড, কি (Key), ইনডেক্স, কানেকশন, স্কিমা, ট্রানজ্যাকশন।
গুণাবলি (Properties):
name (টাইপ: Text, ডিফল্ট: ""): ডাটাবেজের নাম।
status (টাইপ: Text, রিড-অনলি): কানেকশন অবস্থা ("Connected", "Disconnected")।
record_count (টাইপ: Number, রিড-অনলি): ধারণকৃত মোট ডেটা রেকর্ড সংখ্যা।
ইভেন্ট (Events): on_connect, on_query_complete, on_error
পদ্ধতি (Methods): connect, insert, select, update, delete, close
ডিফল্ট আচরণ: এমবেডেড লাইটওয়েট ডাটাবেজ ইন্টারফেস।
কোড উদাহরণ:
create Database system_db
end system_db
call system_db.connect with "local_settings.db"
call system_db.insert into "users" values ("Alice", 25)
উদ্দেশ্য: নিম্মস্তরের TCP/UDP সকেট সংযোগ, সকেট কমিউনিকেশন এবং পোর্ট বাইন্ডিং।
সাব-এলিমেন্ট (৮): IP, পোর্ট, প্রোটোকল, সকেট, প্যাকেট, ট্রাফিক, ল্যাটেন্সি, কানেকশন।
গুণাবলি (Properties):
ip_address (টাইপ: Text, ডিফল্ট: "127.0.0.1"): নেটওয়ার্ক আইপি অ্যাড্রেস।
port (টাইপ: Number, ডিফল্ট: 80): টার্গেট কানেকশন পোর্ট।
is_connected (টাইপ: Logic, রিড-অনলি): সংযোগ সক্রিয় কিনা।
bytes_received (টাইপ: Number, রিড-অনলি): এ পর্যন্ত সংগৃহীত ডেটা বাইট।
ইভেন্ট (Events): on_data_received, on_connect, on_disconnect
পদ্ধতি (Methods): connect, listen, send, disconnect
ডিফল্ট আচরণ: নন-ব্লকিং আসিনক্রোনাস নেটওয়ার্ক সকেট কন্টেইনার।
কোড উদাহরণ:
create Network client
end client
call client.connect to "192.168.1.1" on port 8080
উদ্দেশ্য: উচ্চস্তরের ওয়েব রিকোয়েস্ট (HTTP/HTTPS), REST API ইন্টিগ্রেশন এবং ওয়েব সার্ভিস ইন্টারফেস।
সাব-এলিমেন্ট (৮): URL, হেডার, মেথড, বডি, রেসপন্স, স্ট্যাটাস, কুকি, প্রক্সি।
গুণাবলি (Properties):
url (টাইপ: Text, ডিফল্ট: ""): ওয়েব সার্ভারের URL।
status_code (টাইপ: Number, রিড-অনলি): HTTP স্ট্যাটাস কোড (যেমন: 200, 404)।
response_data (টাইপ: Text, রিড-অনলি): প্রাপ্ত ডেটা কন্টেন্ট।
ইভেন্ট (Events): on_success, on_failure
পদ্ধতি (Methods): get, post, put, delete, download
ডিফল্ট আচরণ: মডার্ন HTTP/HTTPS আসিনক্রোনাস ক্লায়েন্ট অবজেক্ট।
কোড উদাহরণ:
create Internet web_req
end web_req
call web_req.get from "[https://api.peep.os/status](https://api.peep.os/status)"
উদ্দেশ্য: সিস্টেম নিরাপত্তা, স্যান্ডবক্স পরিবেশ, ইউজার পারমিশন এবং এক্সিকিউশন লেভেল।
সাব-এলিমেন্ট (৭): রোল, প্রিভিলেজ, টোকেন, এক্সেস-লিস্ট, পলিসি, সার্টিফিকেট, স্যান্ডবক্স।
গুণাবলি (Properties):
permission_level (টাইপ: Text, রিড-অনলি): বর্তমান অধিকার স্তর ("User", "Admin", "Kernel")।
is_admin (টাইপ: Logic, রিড-অনলি): এডমিন অধিকার থাকলে true হয়।
is_authenticated (টাইপ: Logic, রিড-অনলি): টোকেন বৈধ কিনা তা নির্দেশ করে।
ইভেন্ট (Events): on_access_denied, on_privilege_escalation
পদ্ধতি (Methods): request_permission, validate_token, lock
ডিফল্ট আচরণ: জিরো-ট্রাস্ট সিস্টেমের আওতায় পরিচালিত পারমিশন ভ্যালিডেটর।
কোড উদাহরণ:
create Security perm
end perm
call perm.request_permission with "CameraAccess"
উদ্দেশ্য: ডেটা হ্যাশিং, সমমেট্রিক/আসিমেট্রিক এনক্রিপশন এবং সিকিউরিটি কি তৈরি করা।
সাব-এলিমেন্ট (৭): কি (Key), অ্যালগরিদম, হ্যাশ, সিফার, সল্ট, ডিজিটাল-সিগনেচার, ডিক্রিপ্টর।
গুণাবলি (Properties):
algorithm (টাইপ: Text, ডিফল্ট: "AES-256"): নির্বাচিত এনক্রিপশন পদ্ধতি।
key_length (টাইপ: Number, ডিফল্ট: 256): এনক্রিপশন কি (Key)-এর বিট সাইজ।
ইভেন্ট (Events): on_tampered (ডেটা বিকৃতির চেষ্টা শনাক্ত হলে সংকেত পাঠায়)।
পদ্ধতি (Methods): encrypt, decrypt, hash, generate_key
ডিফল্ট আচরণ: স্ট্যান্ডার্ড AES-256 এনক্রিপশন সিস্টেম পাইপলাইন।
কোড উদাহরণ:
create Encryption crypto
end crypto
set hashed_pass to call crypto.hash with "my_password"
উদ্দেশ্য: নির্দিষ্ট সময় ইন্টারভ্যাল, কাউন্টডাউন, টাইমার টিক এবং নির্ধারিত টাস্ক চালনা করা।
সাব-এলিমেন্ট (৭): ইন্টারভ্যাল, কাউন্টডাউন, রিপিট, প্রিসিশন, স্ট্যাটাস, এল্যাপসড, পজ-স্টেট।
গুণাবলি (Properties):
interval_ms (টাইপ: Number, ডিফল্ট: 1000): মিলিসেকেন্ডের সময় ব্যাপ্তি।
is_running (টাইপ: Logic, রিড-অনলি): টাইমার বর্তমানে চালিত আছে কিনা।
elapsed_time (টাইপ: Number, রিড-অনলি): অতিক্রান্ত মোট মিলিসেকেন্ড।
ইভেন্ট (Events): on_tick, on_complete
পদ্ধতি (Methods): start, stop, pause, reset
ডিফল্ট আচরণ: PEEP OS ইন্টারাপ্ট ক্লক দ্বারা পরিচালিত মিলিসেকেন্ড টাইমার।
কোড উদাহরণ:
create Timer clock_timer
set interval_ms to 1000
on on_tick
print "Tick!"
end on
end clock_timer
উদ্দেশ্য: সময়, তারিখ, টাইমজোন গণনা, দিন নির্ধারণ এবং সিস্টেম ডেট ফরম্যাটিং।
সাব-এলিমেন্ট (৮): বছর, মাস, দিন, ঘন্টা, মিনিট, সেকেন্ড, টাইমজোন, ফরম্যাট।
গুণাবলি (Properties):
current_timestamp (টাইপ: Number, রিড-অনলি): বর্তমান UNIX টাইমস্ট্যাম্প।
formatted_date (টাইপ: Text, রিড-অনলি): পাঠযোগ্য স্ট্রিং ফরম্যাটে প্রকাশিত তারিখ।
day_of_week (টাইপ: Text, রিড-অনলি): সপ্তাহের দিন (যেমন: "Monday")।
ইভেন্ট (Events): on_midnight (রাত ১২:০০ মিনিটে ট্রিগার হয়)।
পদ্ধতি (Methods): now, add_days, format_to_text, difference
ডিফল্ট আচরণ: সিস্টেম ঘড়ির সাথে সিঙ্ক্রোনাইজড Datetime মডেল।
কোড উদাহরণ:
create Date today
end today
call today.now
print today.formatted_date
উদ্দেশ্য: অন-ডিভাইস ও ক্লাউড AI মডেল লোড করা, প্রম্পট ইনফারেন্স এবং নিউরাল নেটওয়ার্ক প্রসেসিং।
সাব-এলিমেন্ট (৯): মডেল, প্রম্পট, টেম্পারেচার, টোকেন, ইনফারেন্স, এমবেডিং, মেমোরি কন্টেন্ট, ভিশন, এজেন্ট।
গুণাবলি (Properties):
model_name (টাইপ: Text, ডিফল্ট: "PeepMini"): লোডকৃত AI মডেলের নাম।
is_generating (টাইপ: Logic, রিড-অনলি): প্রম্পটের উত্তর তৈরি প্রক্রিয়াধীন আছে কিনা।
tokens_used (টাইপ: Number, রিড-অনলি): ব্যবহৃত মোট টোকেন সংখ্যা।
ইভেন্ট (Events): on_token_stream, on_response
পদ্ধতি (Methods): ask, embed, load_model, clear_context
ডিফল্ট আচরণ: PEEP OS-এর নিজস্ব নিউরাল AI ইঞ্জিন ইন্টারফেস।
কোড উদাহরণ:
create AI assistant
end assistant
call assistant.load_model with "PeepMini"
call assistant.ask with "Summarize system logs."
উদ্দেশ্য: প্রসেসর (CPU), র্যাম, তাপমাত্রা সেন্সর, ফ্যান স্পিড এবং ব্যাটারি পাওয়ার মনিটরিং।
সাব-এলিমেন্ট (৮): প্রসেসর, মেমোরি ইনফো, টেম্পারেচার, ফ্যান, ব্যাটারি, বাস, পাওয়ার, BIOS।
গুণাবলি (Properties):
cpu_temp (টাইপ: Number, রিড-অনলি): প্রসেসরের সেলসিয়াস তাপমাত্রা।
battery_percent (টাইপ: Number, রিড-অনলি): অবশিষ্ট ব্যাটারি চার্জ (০–১০০)।
power_source (টাইপ: Text, রিড-অনলি): বিদ্যুতের উৎস ("Battery", "AC_Power")।
ইভেন্ট (Events): on_overheat, on_low_battery
পদ্ধতি (Methods): get_specs, set_power_mode
ডিফল্ট আচরণ: সুরক্ষিত হার্ডওয়্যার টেলিমেট্রি ইন্টারফেস।
কোড উদাহরণ:
create Hardware system_hw
end system_hw
print system_hw.battery_percent
উদ্দেশ্য: বহিঃস্থ পেরিফেরাল, ইউএসবি (USB) ড্রাইভ, ব্লুটুথ ডিভাইস এবং হার্ডওয়্যার পোর্ট কানেক্টিভিটি।
সাব-এলিমেন্ট (৮): নাম, টাইপ, আইডেন্টিফায়ার, পোর্ট, ড্রাইভার, স্ট্যাটাস, ভেন্ডর, কানেকশন টাইপ।
গুণাবলি (Properties):
device_name (টাইপ: Text, রিড-অনলি): সংযুক্ত ডিভাইসের নাম।
is_connected (টাইপ: Logic, রিড-অনলি): ডিভাইসটি সংযুক্ত অবস্থায় আছে কিনা।
device_type (টাইপ: Text, রিড-অনলি): ডিভাইসের ধরন ("Storage", "Input")।
ইভেন্ট (Events): on_device_plugged, on_device_unplugged
পদ্ধতি (Methods): eject, send_command, read_stream
ডিফল্ট আচরণ: PEEP OS ইউএসবি এবং পেরিফেরাল ডিভাইস ম্যানেজার।
কোড উদাহরণ:
create Device usb_drive
on on_device_plugged
print "Drive Connected!"
end on
end usb_drive
উদ্দেশ্য: মূল অপারেটিং সিস্টেম সেটিংস, এনভায়রনমেন্ট ভেরিয়েবল, সিস্টেম রিবুট এবং পাওয়ার অফ।
সাব-এলিমেন্ট (৮): OS ভার্সন, কার্নেল, ইউজার, এনভায়রনমেন্ট, থিম সেটিংস, অডিও সিস্টেম, ডিসপ্লে ম্যানেজার, রেজিস্ট্রি।
গুণাবলি (Properties):
os_version (টাইপ: Text, রিড-অনলি): বর্তমান PEEP OS ভার্সন।
logged_user (টাইপ: Text, রিড-অনলি): সক্রিয় ইউজার অ্যাকাউন্ট নাম।
screen_resolution (টাইপ: Text, রিড-অনলি): মনিটরের পিক্সেল রেজুলেশন।
ইভেন্ট (Events): on_shutdown, on_user_switch
পদ্ধতি (Methods): reboot, shutdown, set_environment_variable, log
ডিফল্ট আচরণ: PEEP OS কন্ট্রোল প্লেন কার্নেল ইন্টারফেস।
কোড উদাহরণ:
create System host
end host
print host.os_version
উদ্দেশ্য: মূল উইন্ডো ফ্রেম, ভিজ্যুয়াল লেআউট ওয়ার্কস্পেস এবং ডেস্কটপ কন্টেইনার।
সাব-এলিমেন্ট (১১): শিরোনাম, সাইজ, স্থান, কন্ট্রোলস, ফ্রেম, ট্রান্সপারেন্সি, থিম, স্টেট, প্যাডিং, আইকন, ফোকাস।
গুণাবলি (Properties):
title (টাইপ: Text, ডিফল্ট: "New Application"): উইন্ডোর টাইটেল বারের লেখা।
width (টাইপ: Number, ডিফল্ট: 800): পিক্সেলের হিসেবে প্রস্থ।
height (টাইপ: Number, ডিফল্ট: 600): পিক্সেলের হিসেবে উচ্চতা।
is_fullscreen (টাইপ: Logic, ডিফল্ট: false): ফুলস্ক্রিন অবস্থায় আছে কিনা।
is_visible (টাইপ: Logic, ডিফল্ট: true): স্ক্রিনে দৃশ্যমান কিনা।
ইভেন্ট (Events): on_open, on_close, on_resize, on_focus
পদ্ধতি (Methods): open, close, maximize, minimize, center
ডিফল্ট আচরণ: টাইটেল বার এবং ক্লোজ/মিনিমাইজ/ম্যাক্সিমাইজ বাটন যুক্ত স্ট্যান্ডার্ড ডেস্কটপ উইন্ডো।
কোড উদাহরণ:
create Window main_win
set title to "My App"
call main_win.open
end main_win
উদ্দেশ্য: লেবেল, হেডার, এবং স্ক্রিনে দৃশ্যমান পঠনযোগ্য টেক্সট অবজেক্ট।
সাব-এলিমেন্ট (১১): কন্টেন্ট, ফন্ট, সাইজ, রং, ওয়েট (Weight), অ্যালাইনমেন্ট, র্যাপিং, ট্রাংকেশন, শ্যাডো, সিলেকশন, লাইন-হাইট।
গুণাবলি (Properties):
text (টাইপ: Text, ডিফল্ট: "Text Label"): দৃশ্যমান টেক্সট কন্টেন্ট।
font_size (টাইপ: Number, ডিফল্ট: 14): ফন্টের পয়েন্ট আকার।
font_color (টাইপ: Text, ডিফল্ট: "#000000"): হেক্স কালার কোড।
is_bold (টাইপ: Logic, ডিফল্ট: false): গাঢ় (Bold) টেক্সট মোড।
ইভেন্ট (Events): on_hover, on_click
পদ্ধতি (Methods): set_text, fade_in, highlight
ডিফল্ট আচরণ: নন-এডিটেবল ভেক্টর UI টেক্সট লেবেল।
কোড উদাহরণ:
create Text header
set text to "Dashboard"
set font_size to 24
end header
উদ্দেশ্য: এক-লাইন এবং মাল্টি-লাইন ইন্টারঅ্যাক্টিভ টেক্সট ইনপুট ফিল্ড।
সাব-এলিমেন্ট (১১): টেক্সট, প্লেসহোল্ডার, কার্সার, ম্যাক্স-লেংথ, মাস্ক, বর্ডার, রং, ফোকাস, ক্লিয়ার-বাটন, ইনপুট-টাইপ, ভ্যালিডেশন।
গুণাবলি (Properties):
value (টাইপ: Text, ডিফল্ট: ""): ব্যবহারকারীর টাইপ করা মান।
placeholder (টাইপ: Text, ডিফল্ট: ""): ইনপুট ফাঁকা থাকলে প্রদর্শিত নির্দেশনামূলক টেক্সট।
is_focused (টাইপ: Logic, রিড-অনলি): কার্সার ফোকাস যুক্ত আছে কিনা।
is_valid (টাইপ: Logic, রিড-অনলি): ইনপুট তথ্য নিয়মমাফিক সঠিক কিনা।
ইভেন্ট (Events): on_change, on_submit, on_focus_lost
পদ্ধতি (Methods): clear, focus, select_all
ডিফল্ট আচরণ: টাইপযোগ্য টেক্সট ইনপুট ফিল্ড উইজেট।
কোড উদাহরণ:
create Input email_field
set placeholder to "Enter your email"
end email_field
উদ্দেশ্য: সংবেদনশীল তথ্য গোপন রেখে পাসওয়ার্ড ইনপুট নেওয়ার সুরক্ষিত ফিল্ড।
সাব-এলিমেন্ট (১১): টেক্সট, মাস্ক-অক্ষর, টগল-ভিজিবিলিটি, স্ট্রেন্থ, বর্ডার, রং, ম্যাক্স-লেংথ, ফোকাস, আইকন, ভ্যালিডেশন, কপি-সুরক্ষা।
গুণাবলি (Properties):
value (টাইপ: Text, ডিফল্ট: ""): আসল পাসওয়ার্ড স্ট্রিং।
is_masked (টাইপ: Logic, ডিফল্ট: true): অক্ষরগুলো লু্কানো বা মাস্কড অবস্থায় আছে কিনা।
password_strength (টাইপ: Text, রিড-অনলি): পাসওয়ার্ডের শক্তি সম্পর্কিত তথ্য ("Weak", "Strong")।
ইভেন্ট (Events): on_change, on_toggle_visibility
পদ্ধতি (Methods): clear, reveal_temporarily
ডিফল্ট আচরণ: মাস্কড ক্যারেক্টার ইনপুট ফিল্ড যা চোখ (Eye) আইকনের সাহায্যে দেখানো/লুকানো যায়।
কোড উদাহরণ:
create Password user_pass
set mask_character to "*"
end user_pass
উদ্দেশ্য: মাউস ক্লিক বা টাচ ইন্টারঅ্যাকশনের মাধ্যমে কমান্ড ও অ্যাকশন চালনার বাটন।
সাব-এলিমেন্ট (১১): টেক্সট, আইকন, সাইজ, রং, রেডিয়াস, বর্ডার, স্থান, অ্যাকশন, ইভেন্ট, অ্যানিমেশন, অনুমতি।
গুণাবলি (Properties):
label (টাইপ: Text, ডিফল্ট: "Button"): বাটনের গায়ে লেখা টেক্সট।
background_color (টাইপ: Text, ডিফল্ট: "#007ACC"): ব্যাকগ্রাউন্ড হেক্স কালার।
is_enabled (টাইপ: Logic, ডিফল্ট: true): বাটনে ক্লিক গ্রহণ করা যাবে কিনা।
is_pressed (টাইপ: Logic, রিড-অনলি): বাটনটি চেপে ধরা অবস্থায় আছে কিনা।
ইভেন্ট (Events): on_click, on_double_click, on_press, on_release
পদ্ধতি (Methods): click, disable, enable, animate_pulse
ডিফল্ট আচরণ: ক্লিকযোগ্য ইন্টারঅ্যাক্টিভ উইজেট।
কোড উদাহরণ:
create Button submit_btn
set label to "Save"
on on_click
print "Saved!"
end on
end submit_btn
উদ্দেশ্য: ভেক্টর বা রাস্টার ধাঁচের ছবি স্ক্রিনে প্রদর্শন করে।
সাব-এলিমেন্ট (১১): সোর্স (Source), ফিট-মোড, অ্যাস্পেক্ট-রেশিও, বর্ডার, রেডিয়াস, ফিল্টার, অপাসিটি, লোডিং-স্টেট, ফলব্যাক, স্কেল, অ্যালাইনমেন্ট।
গুণাবলি (Properties):
source_path (টাইপ: Text, ডিফল্ট: ""): ছবির ফাইল পাথ বা ইউআরএল।
width (টাইপ: Number, ডিফল্ট: 100): ছবির পিক্সেল প্রস্থ।
height (টাইপ: Number, ডিফল্ট: 100): ছবির পিক্সেল উচ্চতা।
aspect_ratio (টাইপ: Number, রিড-অনলি): ছবির অনুপাত।
ইভেন্ট (Events): on_load, on_error, on_click
পদ্ধতি (Methods): reload, apply_blur, rotate
ডিফল্ট আচরণ: আসিনক্রোনাস উপায়ে রেন্ডার হওয়া রেসপন্সিভ ইমেজ কন্টেইনার।
কোড উদাহরণ:
create Image avatar
set source_path to "/assets/user.png"
end avatar
উদ্দেশ্য: ভিডিও প্লেব্যাক, মিডিয়া স্ট্রিমিং এবং ভিডিও প্লেয়ার ইন্টারফেস।
সাব-এলিমেন্ট (১১): সোর্স, প্লেব্যাক-স্টেট, ভলিউম, সাবটাইটেল, কন্ট্রোলস, অ্যাস্পেক্ট-রেশিও, স্পিড, লুপ, অটো-প্লে, স্ক্রাব-বার, ফুলস্ক্রিন।
গুণাবলি (Properties):
source (টাইপ: Text, ডিফল্ট: ""): ভিডিও মিডিয়া ফাইলের ফাইল পাথ।
duration (টাইপ: Number, রিড-অনলি): ভিডিওটির মোট সময়কাল (সেকেন্ডে)।
current_time (টাইপ: Number, ডিফল্ট: 0): ভিডিওর বর্তমান প্লেহেড অবস্থান।
volume (টাইপ: Number, ডিফল্ট: 100): শব্দের তীব্রতা (০ থেকে ১০০)।
is_playing (টাইপ: Logic, রিড-অনলি): ভিডিও সক্রিয়ভাবে চলছে কিনা।
ইভেন্ট (Events): on_play, on_pause, on_end, on_buffer
পদ্ধতি (Methods): play, pause, seek, set_volume
ডিফল্ট আচরণ: GPU-অ্যাক্সিলারেটেড মিডিয়া প্লেয়ার উইজেট।
কোড উদাহরণ:
create Video intro
set source to "/media/intro.mp4"
end intro
call intro.play
উদ্দেশ্য: শব্দ ও গান প্লেব্যাক পরিচালনা এবং অডিও প্লেয়ার ইন্টারফেস।
সাব-এলিমেন্ট (১১): সোর্স, ভলিউম, ব্যালেন্স, ইকুয়ালাইজার, লুপ, স্ট্যাটাস, ওয়েভফর্ম, ডিউরেশন, মিউট, চ্যানেল, আউটপুট-ডিভাইস।
গুণাবলি (Properties):
source (টাইপ: Text, ডিফল্ট: ""): অডিও ফাইলের অবস্থান।
volume (টাইপ: Number, ডিফল্ট: 100): ভলিউম স্কেল (০-১০০)।
is_muted (টাইপ: Logic, ডিফল্ট: false): শব্দ মিউট বা বন্ধ করা আছে কিনা।
ইভেন্ট (Events): on_start, on_finish
পদ্ধতি (Methods): play, pause, mute
ডিফল্ট আচরণ: ব্যাকগ্রাউন্ড বা ইন্টারঅ্যাক্টিভ অডিও কন্ট্রোল ইন্টারফেস।
কোড উদাহরণ:
create Audio alert_sound
set source to "/audio/ding.wav"
end alert_sound
call alert_sound.play
উদ্দেশ্য: ভেক্টর ফরম্যাটের সিস্টেম আইকন এবং গ্রাফিক্যাল চিহ্ন উপস্থাপন।
সাব-এলিমেন্ট (১১): নাম, সাইজ, রং, রোটেশন, ভ্যারিয়েন্ট, ওয়েট, ব্যাজ, প্যাডিং, টুলটিপ, ক্লিকএবল, অ্যানিমেশন।
গুণাবলি (Properties):
icon_name (টাইপ: Text, ডিফল্ট: "default"): সিস্টেম আইকন টেমপ্লেটের নাম।
size (টাইপ: Number, ডিফল্ট: 16): আইকনের বর্গাকার পিক্সেল দৈর্ঘ্য।
color (টাইপ: Text, ডিফল্ট: "#333333"): আইকনের রঙ।
ইভেন্ট (Events): on_click
পদ্ধতি (Methods): change_icon, spin
ডিফল্ট আচরণ: PEEP OS সিস্টেম আইকন লাইব্রেরি থেকে তৈরি ভেক্টর গ্লিফ।
কোড উদাহরণ:
create Icon settings_icon
set icon_name to "gear"
end settings_icon
উদ্দেশ্য: ডায়ালগ বক্স, বার্তা পপআপ, এবং কনফার্মেশন প্রম্পট ওভারলে।
সাব-এলিমেন্ট (১১): শিরোনাম, মেসেজ, বাটনসমূহ, আইকন, মোডাল-টাইপ, ডিফল্ট-অ্যাকশন, ব্যাকড্রপ, রেজাল্ট, ফোকাস, টাইমআউট, সাউন্ড।
গুণাবলি (Properties):
title (টাইপ: Text, ডিফল্ট: "Alert"): শিরোনাম।
message (টাইপ: Text, ডিফল্ট: ""): প্রদর্শিত মূল বার্তা।
dialog_type (টাইপ: Text, ডিফল্ট: "Info"): ডায়ালগের ধরন ("Info", "Warning", "Error")।
ইভেন্ট (Events): on_confirm, on_cancel, on_dismiss
পদ্ধতি (Methods): show, hide
ডিফল্ট আচরণ: স্ক্রিনের মাঝামাঝি ব্যাকড্রপ আবৃত মোডাল ওভারলে।
কোড উদাহরণ:
create Dialog confirm_box
set title to "Delete File?"
call confirm_box.show
end confirm_box
উদ্দেশ্য: কনটেক্সট মেনু, ড্রপডাউন ফ্লাইআউট এবং নির্দিষ্ট উইজেটে নোঙ্গর করা ভাসমান উইন্ডো।
সাব-এলিমেন্ট (১১): টার্গেট, কন্টেন্ট, এঙ্কর-পজিশন, অ্যারো, ব্যাকড্রপ, অটো-হাইড, অফসেট, শ্যাডো, বর্ডার, অ্যানিমেশন, স্টেট।
গুণাবলি (Properties):
is_open (টাইপ: Logic, রিড-অনলি): পপআপ প্রদর্শিত অবস্থায় আছে কিনা।
target_element (টাইপ: Text, ডিফল্ট: ""): সংযুক্ত মূল উপাদানের আইডি।
ইভেন্ট (Events): on_open, on_dismiss
পদ্ধতি (Methods): show_at, close
ডিফল্ট আচরণ: নির্দিষ্ট উপাদানের পাশে অবস্থান নেওয়া ভাসমান তথ্য প্যানেল।
কোড উদাহরণ:
create Popup user_card
end user_card
call user_card.show_at with target_button
উদ্দেশ্য: সিস্টেম টোস্ট নোটিফিকেশন মেসেজ এবং নোটিফিকেশন ব্যানার।
সাব-এলিমেন্ট (১১): শিরোনাম, বডি, আইকন, ডিউরেশন, প্রাইয়োরিটি, সাউন্ড, অ্যাকশন-বাটন, গ্রুপ, ডিসমিসএবল, ব্যাজ, পজিশন।
গুণাবলি (Properties):
title (টাইপ: Text, ডিফল্ট: "Notification"): নোটিফিকেশনের শিরোনাম।
body (টাইপ: Text, ডিফল্ট: ""): বিস্তারিত বার্তার টেক্সট।
duration_ms (টাইপ: Number, ডিফল্ট: 3000): স্ক্রিনে ভেসে থাকার মোট সময়।
ইভেন্ট (Events): on_click, on_expire
পদ্ধতি (Methods): send, dismiss
ডিফল্ট আচরণ: স্ক্রিনের কোণে ক্ষণস্থায়ী ভাসমান নোটিফিকেশন কার্ড।
কোড উদাহরণ:
create Notification toast
set title to "Download Complete"
call toast.send
end toast
উদ্দেশ্য: অ্যাপ্লিকেশনের ড্রপডাউন মেনু বার, কমান্ড লিস্ট এবং রাইট-ক্লিক অপশন কন্টেইনার।
সাব-এলিমেন্ট (১১): আইটেমসমূহ, সাব-মেনু, শর্টকাট, আইকনসমূহ, সেপারেটর, স্টেট, চেকএবল, অ্যাক্টিভ-আইটেম, ওরিয়েন্টেশন, থিম, হোভার-ইফেক্ট।
গুণাবলি (Properties):
item_count (টাইপ: Number, রিড-অনলি): মেনুর মোট অপশন সংখ্যা।
is_open (টাইপ: Logic, রিড-অনলি): মেনু দৃশ্যমান রয়েছে কিনা।
ইভেন্ট (Events): on_item_select
পদ্ধতি (Methods): add_item, add_separator, open, close
ডিফল্ট আচরণ: আনুভূমিক বা উল্লম্ব অ্যাকশন তালিকার কন্টেইনার।
কোড উদাহরণ:
create Menu file_menu
end file_menu
call file_menu.add_item with "New File"
call file_menu.add_item with "Save"
উদ্দেশ্য: নেভিগেশন বার, অ্যাপ্লিকেশন হেডার এবং স্ক্রিন ট্র্যাকিং বার।
সাব-এলিমেন্ট (১১): রুটসমূহ, অ্যাক্টিভ-রুট, লোগো, শিরোনাম, অ্যাকশনসমূহ, স্টাইল, ব্যাক-বাটন, ব্রেডক্রাম্বস, স্টিকি, ট্রান্সপারেন্সি, সার্চ-বার।
গুণাবলি (Properties):
current_route (টাইপ: Text, ডিফল্ট: "/"): বর্তমানে প্রদর্শিত স্ক্রিন রুট।
title (টাইপ: Text, ডিফল্ট: "App"): নেভিগেশন বারের শিরোনাম।
ইভেন্ট (Events): on_route_change, on_back
পদ্ধতি (Methods): Maps_to, go_back
ডিফল্ট আচরণ: অ্যাপ্লিকেশনের শীর্ষে স্থান নেওয়া নেভিগেশন হেডার।
কোড উদাহরণ:
create Navigation nav_bar
end nav_bar
call nav_bar.navigate_to with "/home"
উদ্দেশ্য: উইন্ডোর ডান বা বাম পাশ থেকে গুটিয়ে রাখা যায় এমন নেভিগেশন সাইড ড্রয়ার।
সাব-এলিমেন্ট (১১): আইটেমসমূহ, কলাপ্সড-স্টেট, উইডথ, হেডার, ফুটার, টগল-বাটন, ওভারলে-মোড, পজিশন, সিলেক্টেড-ইনডেক্স, ব্যাজসমূহ, অ্যানিমেশন।
গুণাবলি (Properties):
is_collapsed (টাইপ: Logic, ডিফল্ট: false): ড্রয়ার বন্ধ অবস্থায় আছে কিনা।
width (টাইপ: Number, ডিফল্ট: 250): খোলার পর সাইডবারের পিক্সেল প্রস্থ।
ইভেন্ট (Events): on_expand, on_collapse, on_select
পদ্ধতি (Methods): toggle, expand, collapse
ডিফল্ট আচরণ: উইন্ডোর কিনারে আটকে থাকা উল্লম্ব নেভিগেশন প্যানেল।
কোড উদাহরণ:
create Sidebar side_panel
end side_panel
call side_panel.toggle
উদ্দেশ্য: দ্রুত অ্যাক্সেসযোগ্য বাটন এবং কাজের শর্টকাট আইকন বার।
সাব-এলিমেন্ট (১১): বাটনসমূহ, সেপারেটর, ওরিয়েন্টেশন, সাইজ, ওভারফ্লো-মেনু, ডকিং, টুলটিপস, কাস্টম-কন্ট্রোলস, স্টাইল, থিম, অ্যাক্টিভ-গ্রুপ।
গুণাবলি (Properties):
orientation (টাইপ: Text, ডিফল্ট: "Horizontal"): ওরিয়েন্টেশন বিন্যাস।
is_docked (টাইপ: Logic, ডিফল্ট: true): নির্দিষ্ট পজিশনে আটকানো আছে কিনা।
ইভেন্ট (Events): on_action_triggered
পদ্ধতি (Methods): add_action, dock_to_top
ডিফল্ট আচরণ: ছোট ছোট অ্যাকশন বাটনে সাজানো কাজের টুলবার।
কোড উদাহরণ:
create Toolbar edit_tools
end edit_tools
call edit_tools.add_action with "Copy"
উদ্দেশ্য: রিয়েল-টাইম সার্চ ইনপুট ফিল্ড এবং অটো-সাজেশন সার্চ বার।
সাব-এলিমেন্ট (১১): কুয়েরি, সাজেশনসমূহ, ফিল্টার, ক্লিয়ার-বাটন, লোডিং-আইকন, হিস্টোরি, কি-ডিলে, ম্যাক্স-রেজাল্ট, স্কোপ, ক্যাটাগরি, হাইলাইট।
গুণাবলি (Properties):
query_text (টাইপ: Text, ডিফল্ট: ""): অনুসন্ধানের জন্য লিখিত শব্দ।
is_searching (টাইপ: Logic, রিড-অনলি): তথ্য খোঁজার কাজ চলমান কিনা।
ইভেন্ট (Events): on_search, on_suggestion_select
পদ্ধতি (Methods): execute_search, clear_history
ডিফল্ট আচরণ: অনুসন্ধান বার উইজেট।
কোড উদাহরণ:
create Search search_box
set placeholder to "Search files..."
end search_box
উদ্দেশ্য: চেকমার্ক টিক চিহ্ন যুক্ত একাধিক পছন্দ নির্বাচন কন্ট্রোল।
সাব-এলিমেন্ট (১১): লেবেল, স্টেট, ইনডিটারমিনেট, রং, সাইজ, বর্ডার, আইকন, ভ্যালু, অ্যালাইনমেন্ট, ফোকাস, বিবরণ।
গুণাবলি (Properties):
is_checked (টাইপ: Logic, ডিফল্ট: false): চেক মার্ক দেওয়া আছে কিনা (true/false)।
label (টাইপ: Text, ডিফল্ট: "Check"): পাশের তথ্য লেবেল।
ইভেন্ট (Events): on_check, on_uncheck, on_change
পদ্ধতি (Methods): toggle, check, uncheck
ডিফল্ট আচরণ: চারকোনা বক্স যুক্ত টিকমার্ক বাটন।
কোড উদাহরণ:
create Checkbox opt_in
set label to "Accept Terms"
end opt_in
উদ্দেশ্য: একটি গ্রুপ থেকে শুধুমাত্র একটি পছন্দ নির্বাচনের জন্য গোল রেডিও বাটন।
সাব-এলিমেন্ট (১১): গ্রুপ, লেবেল, সিলেক্টেড-স্টেট, ভ্যালু, রং, সাইজ, বর্ডার, ফোকাস, অ্যালাইনমেন্ট, ইনডেক্স, বিবরণ।
গুণাবলি (Properties):
is_selected (টাইপ: Logic, ডিফল্ট: false): নির্বাচিত অবস্থায় আছে কিনা।
group_name (টাইপ: Text, ডিফল্ট: "default_group"): রেডিও গ্রুপ আইডেন্টিফায়ার।
value (টাইপ: Text, ডিফল্ট: ""): রেডিও অপশনের সাথে যুক্ত ভ্যালু।
ইভেন্ট (Events): on_select
পদ্ধতি (Methods): select
ডিফল্ট আচরণ: পারস্পরিক পরিপন্থী অপশনের গোলাকার সিলেকশন বাটন।
কোড উদাহরণ:
create Radio opt_male
set group_name to "Gender"
end opt_male
উদ্দেশ্য: চালু এবং বন্ধের অন/অফ (ON/OFF) স্লাইডিং সুইচ।
সাব-এলিমেন্ট (১১): স্টেট, অন-লেবেল, অফ-লেবেল, রং, সাইজ, থাম্ব-স্টাইল, অ্যানিমেশন, ফোকাস, ডিজেবলড-স্টেট, আইকন, বর্ডার।
গুণাবলি (Properties):
is_on (টাইপ: Logic, ডিফল্ট: false): চালু বা বন্ধ স্থিতি (true বা false)।
on_label (টাইপ: Text, ডিফল্ট: "ON"): চালু অবস্থার লেবেল।
off_label (টাইপ: Text, ডিফল্ট: "OFF"): বন্ধ অবস্থার লেবেল।
ইভেন্ট (Events): on_toggle, on_turn_on, on_turn_off
পদ্ধতি (Methods): toggle
ডিফল্ট আচরণ: স্লাইডিং মোশন সমৃদ্ধ টগল সুইচ।
কোড উদাহরণ:
create Switch wifi_switch
set is_on to true
end wifi_switch
উদ্দেশ্য: ট্র্যাকের ওপর বিন্দু টেনে পরিমাপ নির্ধারণের স্লাইডিং স্কেল।
সাব-এলিমেন্ট (১১): ভ্যালু, মিনিমাম, ম্যাক্সিমাম, স্টেপ, টিক-মার্কস, ট্র্যাক-কালার, থাম্ব-সাইজ, টুলটিপ, ওরিয়েন্টেশন, রেঞ্জ-মোড, লেবেল।
গুণাবলি (Properties):
current_value (টাইপ: Number, ডিফল্ট: 50): নির্বাচিত নির্দিষ্ট মান।
min (টাইপ: Number, ডিফল্ট: 0): সর্বনিম্ন নির্ধারণীয় মান।
max (টাইপ: Number, ডিফল্ট: 100): সর্বোচ্চ নির্ধারণীয় মান।
ইভেন্ট (Events): on_value_change, on_drag_end
পদ্ধতি (Methods): set_value, reset
ডিফল্ট আচরণ: ট্র্যাকের ওপর ড্র্যাগ করার সুবিধা সম্পন্ন স্কেল উইজেট।
কোড উদাহরণ:
create Slider vol_slider
set min to 0
set max to 100
end vol_slider
উদ্দেশ্য: শতকরা কত অংশ কাজ সম্পন্ন হয়েছে তা জানানোর প্রোগ্রেস বার।
সাব-এলিমেন্ট (১১): ভ্যালু, ম্যাক্সিমাম, মোড, রং, থিকনেস, টেক্সট, শো-পারসেন্টেজ, পালস-অ্যানিমেশন, শেপ, গ্রেডিয়েন্ট, ব্যাকগ্রাউন্ড।
গুণাবলি (Properties):
progress_percent (টাইপ: Number, ডিফল্ট: 0): ০ থেকে ১০০ পর্যন্ত অগ্রগতির সূচক।
is_indeterminate (টাইপ: Logic, ডিফল্ট: false): সময়সীমা অনিশ্চিত হলে অ্যানিমেশন মোড চালু করে।
ইভেন্ট (Events): on_complete, on_value_changed
পদ্ধতি (Methods): update_progress, reset
ডিফল্ট আচরণ: কাজ সমাপ্তির শতাংশ দৃশ্যমানকারী পূর্ণতার বার।
কোড উদাহরণ:
create Progress download_bar
set progress_percent to 45
end download_bar
উদ্দেশ্য: অবস্থা নির্দেশক রূপরঙের সূচক চিহ্ন (যেমন: Online, Offline, Busy)।
সাব-এলিমেন্ট (১১): স্টেট, রং, লেবেল, শেপ, পালস, সাইজ, আইকন, টুলটিপ, অ্যালাইনমেন্ট, বর্ডার, কাস্টম-স্টাইল।
গুণাবলি (Properties):
status_type (টাইপ: Text, ডিফল্ট: "Online"): স্ট্যাটাসের নাম।
label_text (টাইপ: Text, ডিফল্ট: ""): পাশের বিবরণ।
ইভেন্ট (Events): on_status_change
পদ্ধতি (Methods): set_status
ডিফল্ট আচরণ: অবস্থা প্রকাশক ছোট্ট রঙিন বৃত্তাকার বিন্দুর প্রতীক।
কোড উদাহরণ:
create Status user_status
set status_type to "Online"
end user_status
উদ্দেশ্য: দিন, মাস, বছর প্রদর্শন এবং তারিখ বাছাই করার ইন্টারেক্টিভ ক্যালেন্ডার।
সাব-এলিমেন্ট (১১): সিলেক্টেড-ডেট, ভিউ-মোড, সিলেক্টেড-রেঞ্জ, ইভেন্টসমূহ, মিন-ডেট, ম্যাক্স-ডেট, থিম, উইক-স্টার্টস-অন, মান্থ-হেডার, টুডে-হাইলাইট, ডিজেবলড-ডেটস।
গুণাবলি (Properties):
selected_date (টাইপ: Text, রিড-অনলি): পছন্দকৃত নির্বাচিত তারিখ।
view_mode (টাইপ: Text, ডিফল্ট: "Month"): ক্যালেন্ডার ভিউ ধরন।
ইভেন্ট (Events): on_date_select, on_month_change
পদ্ধতি (Methods): go_to_today, add_event
ডিফল্ট আচরণ: গ্রিড আকারের ডেট-পিকার ক্যালেন্ডার ভিউ।
কোড উদাহরণ:
create Calendar date_picker
on on_date_select
print date_picker.selected_date
end on
end date_picker
উদ্দেশ্য: রিয়েল-টাইম সময় প্রকাশক এনালগ বা ডিজিটাল ঘড়ি এবং স্টপওয়াচ।
সাব-এলিমেন্ট (১১): সময়, ফরম্যাট, টাইমজোন, ডিসপ্লে-টাইপ, অ্যালার্ম, স্টপওয়াচ, টাইমার-মোড, সেকেন্ডস-হ্যান্ড, থিম, ফন্ট, স্কেল।
গুণাবলি (Properties):
time_string (টাইপ: Text, রিড-অনলি): ঘড়ির বর্তমান সময়।
is_24h (টাইপ: Logic, ডিফল্ট: true): ২৪ ঘণ্টার ডিসপ্লে মোড চালু রাখা।
ইভেন্ট (Events): on_alarm, on_minute_tick
পদ্ধতি (Methods): start_stopwatch, set_alarm
ডিফল্ট আচরণ: রিয়েল-টাইমে সিস্টেম সমায়ানুগ ডিজিটাল বা এনালগ ঘড়ি।
কোড উদাহরণ:
create Clock desk_clock
set is_24h to true
end desk_clock
উদ্দেশ্য: তথ্য বিশ্লেষণের জন্য ভিজ্যুয়াল চার্ট বা বার, পাই ও লাইন গ্রাফ।
সাব-এলিমেন্ট (১১): টাইপ, ডেটাসেট, X-অ্যাক্সিস, Y-অ্যাক্সিস, লেজেন্ড, টুলটিপ, কালার-প্যালেট, গ্রিড-লাইনস, অ্যানিমেশন, স্কেল, এক্সপোর্ট।
গুণাবলি (Properties):
chart_type (টাইপ: Text, ডিফল্ট: "Bar"): চার্টের ধরন ("Bar", "Line", "Pie")।
title (টাইপ: Text, ডিফল্ট: "Data Chart"): চার্টের শিরোনাম।
ইভেন্ট (Events): on_data_point_click, on_render
পদ্ধতি (Methods): update_data, render, clear
ডিফল্ট আচরণ: ডেটাসেট প্রদর্শনের অ্যানিমেটেড গ্রাফিক্যাল ভিজ্যুয়ালাইজার।
কোড উদাহরণ:
create Chart sales_chart
set chart_type to "Bar"
end sales_chart
উদ্দেশ্য: সারি এবং কলামের সুবিন্যস্ত সারণীতে ডেটা উপস্থাপনার গ্রিড।
সাব-এলিমেন্ট (১১): কলামসমূহ, সারিসমূহ, হেডার্স, সেলেকশন-মোড, পেজ-সাইজ, সর্টিং, ফিল্টারিং, বর্ডার-স্টাইল, সেল-প্যাডিং, প্যাগিনেশন, মাল্টি-সিলেক্ট।
গুণাবলি (Properties):
row_count (টাইপ: Number, রিড-অনলি): মোট ডাটা সারির সংখ্যা।
column_count (টাইপ: Number, রিড-অনলি): মোট কলামের সংখ্যা।
selected_row (টাইপ: Number, ডিফল্ট: -1): পছন্দকৃত নির্বাচিত সারি ইনডেক্স।
ইভেন্ট (Events): on_row_select, on_sort, on_cell_edit
পদ্ধতি (Methods): load_data, add_row, export_csv
ডিফল্ট আচরণ: কলাম সাজানো ও ফিল্টার সম্বলিত ডাটা টেবিল ভিজ্যুয়ালাইজার।
কোড উদাহরণ:
create Table user_table
end user_table
call user_table.load_data with dataset
উদ্দেশ্য: উল্লম্বভাবে স্ক্রোল করার সুবিধা সম্বলিত ডাইনামিক ডেটা তালিকা।
সাব-এলিমেন্ট (১১): আইটেমসমূহ, আইটেম-টেমপ্লেট, সিলেক্টেড-আইটেম, আইটেম-হাইট, ওরিয়েন্টেশন, স্ক্রোলবার, ডিভাইডার, মাল্টি-সিলেক্ট, এম্পটি-স্টেট, লেজি-লোডিং, হোভার-ইফেক্ট।
গুণাবলি (Properties):
item_count (টাইপ: Number, রিড-অনলি): মোট আইটেম সংখ্যা।
selected_index (টাইপ: Number, ডিফল্ট: -1): নির্বাচিত উপাদানের ক্রমিক ইনডেক্স।
ইভেন্ট (Events): on_item_click, on_scroll_end
পদ্ধতি (Methods): add_item, remove_at, scroll_to_top
ডিফল্ট আচরণ: উল্লম্বভাবে স্ক্রোলযোগ্য ডেটা লিস্ট ভিজিটর কন্টেইনার।
কোড উদাহরণ:
create List message_list
end message_list
call message_list.add_item with "Hello World"
উদ্দেশ্য: ছবি, টেক্সট এবং একশন সমন্বিত বাক্সের মতো দৃষ্টিনন্দন প্যানেল।
সাব-এলিমেন্ট (১১): হেডার, বডি, ফুটার, ইমেজ, এলিভেশন, কর্নার-রেডিয়াস, বর্ডার, অ্যাকশন-এরিয়া, প্যাডিং, অ্যাস্পেক্ট-রেশিও, ব্যাকগ্রাউন্ড।
গুণাবলি (Properties):
elevation_level (টাইপ: Number, ডিফল্ট: 1): শ্যাডো মাত্রা (০ থেকে ৫)।
has_shadow (টাইপ: Logic, ডিফল্ট: true): বর্ডারের চারপাশে শ্যাডো থাকবে কিনা।
ইভেন্ট (Events): on_click, on_hover
পদ্ধতি (Methods): set_content, expand
ডিফল্ট আচরণ: গোলাকার কোণা ও শ্যাডো যুক্ত আধুনিক কন্টেইনার প্যানেল।
কোড উদাহরণ:
create Card product_card
set elevation_level to 2
end product_card
উদ্দেশ্য: দুই মাত্রায় (Row এবং Column) এলিমেন্টগুলোকে গুছিয়ে রাখার লেআউট ইঞ্জিন।
সাব-এলিমেন্ট (১১): কলামসমূহ, সারিসমূহ, গ্যাপ, অটো-ফিট, অ্যালাইনমেন্ট, চিলড্রেন, স্প্যানিং, ম্যাক্স-উইডথ, অ্যাস্পেক্ট-রেশিও, র্যাপ, প্যাডিং।
গুণাবলি (Properties):
column_count (টাইপ: Number, ডিফল্ট: 2): কলামের সংখ্যা।
gap_size (টাইপ: Number, ডিফল্ট: 10): সেলগুলোর ভেতরের ফাঁকা পিক্সেল।
ইভেন্ট (Events): on_layout_change
পদ্ধতি (Methods): add_child, set_column_width
ডিফল্ট আচরণ: স্বয়ংক্রিয়ভাবে বিন্যস্ত হওয়া দ্বিমাত্রিক রেসপন্সিভ লেআউট গ্রিড।
কোড উদাহরণ:
create Grid photo_grid
set column_count to 3
end photo_grid
উদ্দেশ্য: নিজস্ব ইচ্ছামতো 2D/3D আঁকাআঁকি ও গেম রেন্ডারিং অঞ্চল।
সাব-এলিমেন্ট (১১): উইডথ, হাইট, কনটেক্সট, অপারেশনসমূহ, শেপস, ব্রাশ, লেয়ার, ক্লিয়ার-কালার, স্কেল, রেন্ডারিং-ইঞ্জিন, ফ্রেম-রেট।
গুণাবলি (Properties):
width (টাইপ: Number, ডিফল্ট: 500): ক্যানভাসের পিক্সেল প্রস্থ।
height (টাইপ: Number, ডিফল্ট: 500): ক্যানভাসের পিক্সেল উচ্চতা।
fps (টাইপ: Number, রিড-অনলি): রিয়েল-টাইমে চালিত ফ্রেমেস পার সেকেন্ড (FPS)।
ইভেন্ট (Events): on_draw, on_pointer_down, on_pointer_move
পদ্ধতি (Methods): draw_line, draw_circle, clear, export_image
ডিফল্ট আচরণ: GPU-অ্যাক্সিলারেটেড গ্রাফিক্স রেন্ডারিং সম্বলিত ড্রয়িং সারফেস।
কোড উদাহরণ:
create Canvas paint_area
end paint_area
call paint_area.draw_circle at 50, 50 with radius 20
উদ্দেশ্য: UI এলিমেন্টের সাবলীল রূপান্তর এবং দৃশ্যমান অ্যানিমেশন নিয়ন্ত্রক।
সাব-এলিমেন্ট (১১): টার্গেট, প্রপার্টি, ডিউরেশন, ইজিং, ডিলে, রিপিট-কাউন্ট, অটো-রিভার্স, স্টেট, কি-ফ্রেমস, স্কেল, ভেলোসিটি।
গুণাবলি (Properties):
duration_ms (টাইপ: Number, ডিফল্ট: 300): অ্যানিমেশনের স্থায়িত্ব সময় (মিলিসেকেন্ডে)।
is_playing (টাইপ: Logic, রিড-অনলি): অ্যানিমেশন বর্তমানে চালিত আছে কিনা।
ইভেন্ট (Events): on_start, on_end, on_repeat
পদ্ধতি (Methods): start, stop, pause, reverse
ডিফল্ট আচরণ: UI উপাদানের বৈশিষ্ট্য পরিবর্তনের হার্ডওয়্যার অ্যাক্সিলারেটেড ইন্টারপোলেশন ইঞ্জিন।
কোড উদাহরণ:
create Animation fade_anim
set target to header
call fade_anim.start
end fade_anim
উদ্দেশ্য: বিশ্বজনীন কালার থিম, লাইট/ডার্ক মোড এবং দৃশ্যমান রূপরেখা নির্দেশক।
সাব-এলিমেন্ট (১১): মোড, প্রাইমারি-কালার, সেকেন্ডারি-কালার, ব্যাকগ্রাউন্ড-কালার, ফন্ট-ফ্যামিলি, বর্ডার-রেডিয়াস, টেক্সট-কালার, ডার্ক-মোড, ভ্যারিয়েবলস, শ্যাডোস, একসেন্ট-কালার।
গুণাবলি (Properties):
is_dark_mode (টাইপ: Logic, ডিফল্ট: false): ডার্ক মোড চালিত কিনা (true বা false)।
primary_color (টাইপ: Text, ডিফল্ট: "#007ACC"): মূল রঙ।
ইভেন্ট (Events): on_theme_change
পদ্ধতি (Methods): toggle_dark_mode, apply_palette
ডিফল্ট আচরণ: অ্যাপ্লিকেশনের ডিজাইন পরিবর্তনের থিম কন্টেইনার।
কোড উদাহরণ:
create Theme app_theme
end app_theme
call app_theme.toggle_dark_mode
উদ্দেশ্য: মূল উইজেটগুলোকে নির্দিষ্ট বিন্যাসে (কলাম, রো) সাজিয়ে রাখার ফ্লেক্স কন্টেইনার।
সাব-এলিমেন্ট (১১): মোড, ডিরেকশন, অ্যালাইনমেন্ট, জাস্টিফিকেশন, প্যাডিং, মার্জিন, স্পেসিং, র্যাপ, ওভারফ্লো, ফিল, সাইজ।
গুণাবলি (Properties):
direction (টাইপ: Text, ডিফল্ট: "Column"): উপাদানের সাজানোর দিক ("Column" অথবা "Row")।
alignment (টাইপ: Text, ডিফল্ট: "Start"): উপাদানগুলোর অ্যালাইনমেন্ট স্থিতি।
ইভেন্ট (Events): on_resize
পদ্ধতি (Methods): add_element, clear_all
ডিফল্ট আচরণ: স্বয়ংক্রিয়ভাবে সাব-উপাদানসমূহকে সুবিন্যস্ত রাখার ফ্লেক্স কন্টেইনার।
কোড উদাহরণ:
create Layout main_layout
set direction to "Column"
end main_layout
ক্ষেত্র
মোট পরিমাপ
বিবরণ
মোট মেইন এলিমেন্ট
৫৪
ব্যাকএন্ড (২০টি) এবং ফ্রন্টএন্ড (৩৪টি)
মোট ব্যাকএন্ড এলিমেন্টস
২০
OS, মেমোরি, প্রসেস, হার্ডওয়্যার, নেটওয়ার্ক ও AI প্রাইমিটিভস
মোট ফ্রন্টএন্ড GUI এলিমেন্টস
৩৪
ডিসপ্লে, মিডিয়া, উইজেট, ইনপুট ও লেআউট কম্পোনেন্টস
মোট সংরক্ষিত সাব-এলিমেন্টস
৪৮৮
৫৪টি উপাদানের অন্তর্ভুক্ত সাব-এলিমেন্ট ভ্যারিয়েবল
সংরক্ষিত কিওয়ার্ড সংখ্যা
২৯
ব্যাকরণগত ভাষা কিওয়ার্ড
PPL কম্পাইলার পাইপলাইনে নিচের ২৯টি ইংরেজি শব্দ কিওয়ার্ড হিসেবে সংরক্ষিত:
create set to is with call
define Task on end check if
otherwise return add remove and or
not greater less than equal from
at true false combined by
Peep.UI - UI লেআউট, উইজেট কম্পোজিটর, অ্যানিমেশন এবং ভিজ্যুয়াল থিম ম্যানেজমেন্ট
Peep.IO - ফাইল সিস্টেম, ডিরেক্টরি ওয়াচার, ডাটাবেজ সকেট এবং আনম্যানেজড মেমোরি বাফার
Peep.Net - নিম্মস্তরের সকেট বাইন্ডিং, TCP/UDP সকেট, এবং HTTP REST ক্লায়েন্ট
Peep.Security - স্যান্ডবক্সিং পরিবেশ, এনক্রিপশন পাইপলাইন, টোকেন ও পারমিশন কন্ট্রোল
Peep.AI - অন-ডিভাইস নিউরাল নেটওয়ার্ক, টোকেন স্ট্রিম এবং ভেক্টর এমবেডিং
Peep.Hardware - CPU, RAM, তাপমাত্রা সেন্সর ট্র্যাকিং এবং পাওয়ার ম্যানেজমেন্ট
Peep.System - PEEP OS কার্নেল ইন্টারফেস, প্রসেস থ্রেডিং এবং সিস্টেম কন্ট্রোল
PPL কম্পাইলার জটিল সংকেতের বদলে সহজ ভাষায় ভুল নির্দেশ করে:
PPL-ERR-001: Unclosed Declaration Block
কারণ: create দিয়ে শুরু হওয়া ব্লক শেষ করার জন্য matching end <identifier> না দিলে।
মেসেজ:
PPL Syntax Error [Line 42]: Unclosed element block declaration.
Element 'main_screen' declared with 'create Window main_screen' at Line 1 was never closed.
Solution: Add 'end main_screen' at the end of the element block.
PPL-ERR-002: Invalid Property Assignment Type
কারণ: নির্দিষ্ট টাইপের ঘরে ভুল টাইপের ডেটা দিলে (যেমন: নাম্বার প্রপার্টিতে টেক্সট দিলে)।
মেসেজ:
PPL Type Error [Line 18]: Incompatible type assignment for property 'font_size'.
Property 'font_size' requires a Number, but a Text string ("Big") was provided.
Solution: Assign a numeric value (e.g., set font_size to 24).
নিচে সম্পূর্ণ PPL ভাষার একটি পূর্ণাঙ্গ কার্যকরী উদাহরণ দেওয়া হলো যেখানে ব্যাকএন্ড লজিক, সিস্টেম পারমিশন, হার্ডওয়্যার ট্র্যাকিং, কৃত্রিম বুদ্ধিমত্তা (AI) ইনফারেন্স এবং ডেস্কটপ GUI এর সমন্বয় দেখানো হয়েছে:
// ========================================================
// PEEP OS System Dashboard & AI Log Analyzer Tool
// Language: PEEP Programming Language (PPL v1.0)
// ========================================================
// --------------------------------------------------------
// ব্যাকএন্ড সিস্টেম ও AI ডিক্লেয়ারেশন
// --------------------------------------------------------
create Security system_perm
set permission_level to "Admin"
end system_perm
create Hardware sys_hw
end sys_hw
create Database log_db
end log_db
create AI log_analyzer
set model_name to "PeepMini"
end log_analyzer
create Text status_message
set content to "System Dashboard Ready."
end status_message
define Task initialize_system
call system_perm.request_permission with "SystemDiagnostics"
call log_db.connect with "system_logs.db"
call log_analyzer.load_model with "PeepMini"
set status_message to "All Subsystems Connected."
end Task
define Task analyze_logs
set status_message to "Analyzing System Logs with AI..."
call log_analyzer.ask with "Summarize recent system warnings."
end Task
// --------------------------------------------------------
// ফ্রন্টএন্ড UI অ্যাপ্লিকেশন ফ্রেম
// --------------------------------------------------------
create Window dashboard_window
set title to "PEEP OS - System Diagnostics & AI Control Center"
set width to 1024
set height to 768
create Theme app_theme
set is_dark_mode to true
end app_theme
create Layout main_layout
set direction to "Column"
create Navigation nav_bar
set title to "PEEP OS Diagnostics"
end nav_bar
create Layout content_layout
set direction to "Row"
create Sidebar left_sidebar
set width to 240
create Button init_btn
set label to "Initialize Subsystems"
set background_color to "#007ACC"
on on_click
call initialize_system
end on
end init_btn
create Button analyze_btn
set label to "Run AI Log Analysis"
set background_color to "#28A745"
on on_click
call analyze_logs
end on
end analyze_btn
end left_sidebar
create Layout metrics_panel
set direction to "Column"
create Card hw_card
set elevation_level to 2
create Text hw_header
set text to "Hardware Monitor"
set font_size to 18
set is_bold to true
end hw_header
create Text battery_label
set text to "Battery Level:"
end battery_label
create Progress battery_bar
set progress_percent to 85
end battery_bar
end hw_card
create Card ai_card
set elevation_level to 3
create Text ai_header
set text to "AI Diagnostic Output"
set font_size to 18
set is_bold to true
end ai_header
create Text ai_output_text
set text to "Waiting for analysis command..."
set font_size to 14
end ai_output_text
end ai_card
create Status app_status
set status_type to "Online"
set label_text to "System Operational"
end app_status
end metrics_panel
end content_layout
end main_layout
on on_open
call dashboard_window.center
print "Dashboard Window Open and Ready."
end on
end dashboard_window
// --------------------------------------------------------
// প্রোগ্রাম চালু করার নির্দেশ
// --------------------------------------------------------
call dashboard_window.open