Functions ডিক্লারেশন এবং কল করা

WebAssembly এর মাধ্যমে Functions (ফাংশনস এর ব্যবহার) - ওয়েবঅ্যাসেম্বলি (WebAssembly) - Computer Programming

318

Functions ডিক্লারেশন এবং কল করা (WebAssembly)

WebAssembly (WASM) কোডে functions ডিক্লেয়ার এবং কল করার প্রক্রিয়া বেশ সহজ, তবে এটি JavaScript বা অন্যান্য ভাষার তুলনায় কিছুটা ভিন্ন। WebAssembly কোডটি বাইনারি ফরম্যাটে থাকে, তাই এখানে ফাংশন ডিক্লারেশন এবং কল করার জন্য কিছু নির্দিষ্ট স্ট্রাকচার রয়েছে।

এখানে আমরা C বা C++ কোড থেকে WebAssembly তৈরি করার মাধ্যমে ফাংশন ডিক্লারেশন এবং কল করার উদাহরণ দেখব, কারণ এটি অনেক ডেভেলপারদের জন্য ওয়েব অ্যাসেম্বলি কোড লেখার প্রচলিত পদ্ধতি।


1. C/C++ কোডে Functions ডিক্লারেশন এবং কল করা

WebAssembly তৈরি করার জন্য, আপনি প্রথমে C বা C++ ভাষায় ফাংশন ডিক্লেয়ার এবং কল করতে পারেন, পরে তা WebAssembly তে কম্পাইল করা হয়। এখানে একটি সাধারণ C কোডের উদাহরণ দেওয়া হল যেখানে ফাংশন ডিক্লেয়ার এবং কল করা হয়েছে।

1.1 C কোডে Functions ডিক্লারেশন এবং কল করা

#include <stdio.h>

// ফাংশন ডিক্লারেশন
void greet();

int add(int a, int b);

int main() {
    // ফাংশন কল
    greet();
    
    int result = add(5, 3);
    printf("Sum: %d\n", result);
    
    return 0;
}

// ফাংশন ডেফিনিশন
void greet() {
    printf("Hello, WebAssembly!\n");
}

int add(int a, int b) {
    return a + b;
}

এই কোডে দুটি ফাংশন ডিক্লেয়ার এবং কল করা হয়েছে:

  1. greet() — একটি সিম্পল ফাংশন যা "Hello, WebAssembly!" প্রিন্ট করে।
  2. add(int a, int b) — দুটি পূর্ণসংখ্যা গ্রহণ করে তাদের যোগফল রিটার্ন করে।

1.2 Emscripten ব্যবহার করে C কোডকে WebAssembly তে কম্পাইল করা

  1. প্রথমে Emscripten ইনস্টল করতে হবে (যা আমরা পূর্বে আলোচনা করেছি)। এরপর এই কোডটি WebAssembly তে কম্পাইল করতে:

    emcc hello_world.c -o hello_world.html

    এটি একটি hello_world.html এবং hello_world.wasm ফাইল তৈরি করবে, যা ব্রাউজারে রান করা যাবে।


2. JavaScript দিয়ে WebAssembly Functions কল করা

JavaScript এর মাধ্যমে আপনি WebAssembly মডিউল লোড এবং ফাংশন কল করতে পারবেন। JavaScript এ WASM মডিউল লোড করার জন্য WebAssembly.instantiate() ফাংশন ব্যবহার করতে হয়।

2.1 JavaScript দিয়ে WebAssembly ফাংশন কল করা

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>WebAssembly Example</title>
</head>
<body>
    <h1>WebAssembly Function Call</h1>
    <script>
        // WebAssembly মডিউল লোড করা
        fetch('hello_world.wasm')
            .then(response => response.arrayBuffer())
            .then(bytes => WebAssembly.instantiate(bytes))
            .then(wasmModule => {
                // WebAssembly মডিউল থেকে ফাংশন কল করা
                const greet = wasmModule.instance.exports.greet;
                const add = wasmModule.instance.exports.add;
                
                // greet ফাংশন কল
                greet();

                // add ফাংশন কল
                const sum = add(5, 3);
                console.log("Sum: ", sum);
            })
            .catch(console.error);
    </script>
</body>
</html>

এই HTML ফাইলটি WebAssembly মডিউল (hello_world.wasm) লোড করে এবং তার মধ্যে ডিফাইন করা greet() এবং add() ফাংশনগুলিকে কল করে। ব্রাউজারে যখন এটি লোড হয়, তখন "Hello, WebAssembly!" মেসেজটি প্রিন্ট হবে এবং যোগফলটি কনসোলে দেখানো হবে।


3. WebAssembly Functions Export এবং Import করা

WebAssembly মডিউল থেকে ফাংশন এক্সপোর্ট এবং বাইরের কোড থেকে ইম্পোর্ট করা যায়।

3.1 ফাংশন এক্সপোর্ট করা

একটি WebAssembly মডিউল থেকে ফাংশন এক্সপোর্ট করার জন্য আপনাকে সঠিকভাবে export করতে হবে। যেমন:

#include <stdio.h>

int multiply(int a, int b) {
    return a * b;
}

int main() {
    // multiply ফাংশন এক্সপোর্ট করা
    printf("Multiplication: %d\n", multiply(2, 3));
    return 0;
}

এই কোডটি multiply() ফাংশন এক্সপোর্ট করবে, যা অন্য মডিউল থেকে কল করা যাবে।

3.2 ইম্পোর্ট করা

যদি আপনার WebAssembly মডিউল বাইরের কোড থেকে কিছু ফাংশন ইম্পোর্ট করতে চায়, তাহলে সেগুলিকে import করতে হবে।

extern int multiply(int a, int b);

int main() {
    int result = multiply(5, 6);  // বাইরের মডিউল থেকে multiply ফাংশন কল
    printf("Multiplication result: %d\n", result);
    return 0;
}

এখানে multiply() ফাংশনটি বাইরের ওয়েব অ্যাসেম্বলি মডিউল থেকে ইম্পোর্ট করা হচ্ছে।


সারসংক্ষেপ

  1. Functions ডিক্লারেশন: C বা C++ কোডে ফাংশন ডিক্লেয়ার করা হয় এবং তা WebAssembly মডিউলে কম্পাইল করা হয়।
  2. Functions কল: JavaScript এ WebAssembly.instantiate() ব্যবহার করে WASM মডিউল লোড এবং ফাংশন কল করা হয়।
  3. Export ও Import: WebAssembly মডিউল থেকে ফাংশন এক্সপোর্ট এবং বাইরের কোড থেকে ইম্পোর্ট করা যায়।

এই প্রক্রিয়াগুলির মাধ্যমে WebAssembly তে ফাংশন ডিক্লেয়ার এবং কল করা সম্ভব, যা ওয়েব ডেভেলপমেন্টে দ্রুত এবং কার্যকরী কোড তৈরি করতে সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...