RSS

Tag Archives: Panini

Plug your own programming language and get syntax highlighted on Notepad++


Lets try to understand how to plug the new programming language. I’m selecting the “Panini” as my new programming language. First we try to understand how to plug the new syntax to Notepad++. This is very easy task but its very useful for the users who is going to develop software by using this language.

1. Notepad++ expose the grate feature to define your own language. Go to Notepad++ and follow the direction.
Language->Define your Language

notepad++

notepad++-1

Here you can define the language as you wish. But most convenient way is import the language settings from out side xml file. why I’m saying that people who are new to the language they don’t know how to configure this by them selves but think about this if some one can provide the configuration file then they can import it in simply.

So then I’m going to discuss the second method.

2. First you have to define the userDefineLanguage.xml file with your new syntax as follows.

<?xml version="1.0" encoding="Windows-1252" ?>
<NotepadPlus>
    <UserLang name="Panini" ext="java">
        <Settings>
		  <Global caseIgnored="no" />
		  <TreatAsSymbol comment="no" commentLine="no"/>
		  <Prefix words1="no" words2="no" words3="yes" words4="yes"/>
	   </Settings>
        <KeywordLists>
            <Keywords name="Folder+">{</Keywords>
            <Keywords name="Folder-">}</Keywords>
            <Keywords name="Operators">- ( ) * , . / : ? @ [ ] + =</Keywords>
            <Keywords name="Comment">//</Keywords>
            <Keywords name="Words1"></Keywords>
            <Keywords name="Words2"></Keywords>
            <Keywords name="Words3">instanceof assert if else switch case default break goto return for while do continue new throw throws try catch finally this super extends implements import true false null</Keywords>
            <Keywords name="Words4">capsule design package transient strictfp void char short int long double float const static volatile byte boolean class interface native private protected public final abstract synchronized enum</Keywords>
        </KeywordLists>
        <Styles>
            <WordsStyle name="DEFAULT" styleID="11" fgColor="000000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="9" />
            <WordsStyle name="FOLDEROPEN" styleID="12" fgColor="808040" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="14" keywordClass="Folder+"/>
            <WordsStyle name="FOLDERCLOSE" styleID="13" fgColor="808040" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="14" keywordClass="Folder-" />            
            <WordsStyle name="KEYWORD3" styleID="7" fgColor="0000FF" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" keywordClass="Words3"/>
            <WordsStyle name="KEYWORD4" styleID="8" fgColor="8000FF" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" keywordClass="Words4"/>/>
            <WordsStyle name="COMMENT" styleID="1" fgColor="008000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" keywordClass="Comment"/>
            <WordsStyle name="COMMENT LINE" styleID="2" fgColor="008000" bgColor="FFFFFF" fontName="Comic Sans MS" fontStyle="0" fontSize="" keywordClass="Comment"/>
            <WordsStyle name="NUMBER" styleID="4" fgColor="FF0000" bgColor="FFFFFF" fontName="" fontStyle="0" fontSize="" />
            <WordsStyle name="OPERATOR" styleID="10" fgColor="804000" bgColor="FFFFFF" fontName="" fontStyle="1" fontSize="" />
        </Styles>
    </UserLang>
</NotepadPlus>

In above xml structure there is Keyword list as well as Styles as it is you can define the new keyword and colors. Once you complete your keywords you can import the file and restart the Notepad++ then you can see “Panini” Language is available in the language list as follows.

notepad++-2

3. Create new file and select “Panini” as the language. then feel the “Panini” syntax highlighting feature.

notepad++-3

Advertisements
 
1 Comment

Posted by on September 22, 2013 in java

 

Tags: , ,

I will handle the concurrency for you – from Panini


Hi all I was talking about the concurrency programming in java with my earlier blog post. Those are very simple examples but if you go to real world software development the concurrency handling will be mess for the developers with their business logic. So if some one can handle the concurrency implicitly then it would be grate for the developers then they do not want to consider the concurrent problems rather mainly focus on their business logic.

Think about there is a software development requirement of “manage the memory but not required to do it manually” so then you can use JAVA to do this because you don’t want to handle the memory by manually, JAVA will take care of it.

As it is if you have requirement of “handle the concurrent connections but not required to do it by manually” then you can use capsules-oriented programming provided by Panini

lets talk about little bit of Panini program.
Panini is a new programming style designed to address the challenges of concurrent programming. Main goal is to enable non-concurrency experts to write correct and efficient concurrent programs.

How to set up the Panini to your command line
1. Download panini distribution from here then extract to any place in your computer
2. Set the $Panini/bin folder to the path variable in you Windows computer.
3. Then go to command line and check whether Panini is set to the command line by type “panc”
panc
4. Now create the Simple Panini HelloWorld example as follows and save it as paniniHelloWorld.java

capsule HelloWorld {
  void run(){
    System.out.println("Panini: Hello World!");
    long time = System.currentTimeMillis();
    System.out.println("Time is now: " + time);    
  }
}

5. Compile the Panini program
pancH

6. Run the program
pancH

You can follow the complex examples given by Panini and feel the difference with implicit concurrent behavior then Feel free to make the feed back about Panini :).

 
Leave a comment

Posted by on September 12, 2013 in java

 

Tags: , ,

 
%d bloggers like this: