Back to The tech awesomeness
Table of contents
Endeavor chapters

The article for today.

The algorithm is:


public class PISPJJSLK {
    public static void main(String[] args) {
        HashSet < String > javascriptKeywords = new HashSet < String > (Arrays.asList(
"abstract", "arguments",    "await", /* * */    "boolean",
"break",    "byte", "case", "catch",
"char", "class", /* * */    "const",    "continue",
"debugger", "default"   , "delete", "do",
"double",   "else", "enum", /* * */ "eval",
"export", /* * */   "extends", /* * */  "false",    "final",
"finally",  "float",    "for",  "function",
"goto", "if",   "implements",   "import", /* * */
"in",   "instanceof",   "int",  "interface",
"let", /* * */  "long", "native",   "new",
"null", "package",  "private",  "protected",
"public",   "return",   "short",     "static",
"super", /* * */    "switch",   "synchronized", "this",
"throw",     "throws    ", "transient", "true",
"try",  "typeof",   "var",  "void",
"volatile", "while",    "with", "yield"      
                //        "C", "C++", "C#", "JAVA", "SQL", "ORACLE"
        ));

        HashSet < String > javaKeywords = new HashSet < String > (Arrays.asList(
"abstract", "continue", "for",  "new",  "switch",
"assert",/* *** */  "default"   ,"goto", /* * */    "package    ", "synchronized",
"boolean    ", "do",     "if",  "private",  "this",
"break",    "double",   "implements",   "protected",    "throw",
"byte", "else", "import",   "public",   "throws",
"case", "enum", /* **** */  "instanceof",   "return",   "transient",
"catch",    "extends",  "int",  "short",    "try",
"char", "final",    "interface",    "static",   "void",
"class",    "finally",  "long", "strictfp", /* ** */    "volatile",
"const", /* * */    "float",    "native",   "super",    "while"
                //"MySQL", "SQL", "Android", "ORACLE", "PostgreSQL", "DB2", "JAVA"
        ));

        findPseudoIntersectionProgrammingLanguageKeywords(
        "Java", 
        javaKeywords,
        "JavaScript", 
        javascriptKeywords,
        "Common Java and JavaScript");
    }

    public static HashSet < String > findPseudoIntersectionProgrammingLanguageKeywords(
            final String oneLanguageName, 
            final HashSet < String > oneLanguageKeywords,
            final String anotherLanguageName, 
            final HashSet < String > anotherLanguageKeywords,
            final String commonLanguageNames) {
        HashSet < String > resultingSet = new HashSet < String > ();

        HashSet < String > oneUniqueKeywords = new HashSet < String > ();
        HashSet < String > anotherUniqueKeywords = new HashSet < String > ();

        for (String oneLanguageKeyword: oneLanguageKeywords) {
            for (String anotherLanguageKeyword: anotherLanguageKeywords) {
                if(oneLanguageKeyword.trim().equals(anotherLanguageKeyword.trim())) {
                    resultingSet.add(oneLanguageKeyword.trim());
                }
            }
        }

        for (String anotherLanguageKeyword: anotherLanguageKeywords) {
            if(!resultingSet.contains(anotherLanguageKeyword.trim())) {
                anotherUniqueKeywords.add(anotherLanguageKeyword.trim());
            }
        }

        for (String oneLanguageKeyword: oneLanguageKeywords) {
            if(!resultingSet.contains(oneLanguageKeyword.trim())) {
                oneUniqueKeywords.add(oneLanguageKeyword.trim());
            }
        }

        System.out.println(oneLanguageName + " unique keywords : " + oneUniqueKeywords);   
        System.out.println(commonLanguageNames + " keywords : " + resultingSet);   
        System.out.println(anotherLanguageName + " unique keywords : " + anotherUniqueKeywords);
        
        System.out.println(oneLanguageName + " keyword commonality relative to " + commonLanguageNames + " keywords : " + 
                ((double)resultingSet.size() / (double)oneLanguageKeywords.size()));
        System.out.println(anotherLanguageName + " keyword commonality relative to " + commonLanguageNames + " keywords : " + 
                ((double)resultingSet.size() / (double)anotherLanguageKeywords.size()));
        
        System.out.println(oneLanguageName + " keyword uniqueness relative to " + commonLanguageNames + " keywords : " + 
                ((double)oneUniqueKeywords.size() / (double)oneLanguageKeywords.size()));
        System.out.println(anotherLanguageName + " keyword uniqueness relative to " + commonLanguageNames + " keywords : " + 
                ((double)anotherUniqueKeywords.size() / (double)anotherLanguageKeywords.size()));
        
        return resultingSet;
    }
}

The result is (as of 2019-11-20):


*******************************************************************************
*                                                                             *
* Java unique keywords : [assert, strictfp]                                   *
*.............................................................................*
* Common Java and JavaScript keywords : [implements, synchronized, private,   *
* import, const, for, do, float, while, interface, long, switch, default,     *
* goto, protected, public, native, continue, else, catch, if, class, case,    *
* new, static, void, package, break, double, byte, finally, this, volatile,   *
* abstract, throws, enum, int, instanceof, super, boolean, extends,           *
* transient, throw, final, char, short, try, return]                          *
*.............................................................................*
* JavaScript unique keywords : [in, var, debugger, false, delete, with, eval, *
* null, function, yield, true, await, let, arguments, export, typeof]         *
*******************************************************************************

Java keyword commonality relative to Common Java and JavaScript keywords : 0.96
JavaScript keyword commonality relative to Common Java and JavaScript keywords : 0.75

Java keyword uniqueness relative to Common Java and JavaScript keywords : 0.04
JavaScript keyword uniqueness relative to Common Java and JavaScript keywords : 0.25

My intention for this algorithm is to search and find the intersection of two sets of the language keywords as among their reserved strings. They are the keywords in this case, which are common for both languages.

These sets are the two programming languages reserved sets of their corresponding keywords.

They are the copy from https://www.w3schools.com/js/js_reserved.asp and https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html.

The algorithm is for search of preudo [Ελληνικά: ψευδής • (pseudḗs)] intersection, because there is no known compiler or known interpretator for such language for that llll.

The resulting set by this algorithm is not final, because in other articles there are more keywords available for example for Java language.

The update from 2021-02-08.

When after the execution of the same class for coffee klatch language keywords, again the sets for intermediary and for unique keywords are there.

Then when there are coffee klatch languages with no intermediary keywords, but there are keywords for example in one of them "bbbb" and in another "aaaa", but they cause the same result for computing, then the intermediary translation mapping "bbbb" to "aaaa" joins them. The advantage is: if the same code in 2 distinct coffee klatch languages produce the similar results even differently or different means or by different keywords, by using different keywords, such "interface" with intermediary coffee klatch language keywords or with translation mapping of coffee klatch language keywords between them helps a bit. The disadvantage is it incurs costs but it fixes the technical debt. 1 < 10.

I do not count twice: 4(or more) closely duplicate similar projects for 4 distinct coffee klarch language(or for not coffee klatch ones) or 2 similar converters between 2 distinct such coffee klatch languages(or for not coffee klatch languages).

Оновлення від 2021-02-08.

ПППДДМКС. Псевдо пересічні програмні джава Java джаваскрипт JavaScript мовні ключові слова

Стаття сьогодні.

Тоді коли існують мови кавових дискусій з відсутністю пересічних ключових слів, але існують ключові слова для наприклад в одній з них "бббб" і у іншій "аааа", але вони призводять до того самого результату для обчислення, тоді проміжний пересічний перекладаючий асоціюючий "бббб" до "аааа" з'єднує їх. Перевагою є: якщо той самий код у 2 окремих мовах кавових дискусій призводить до ідентичних результатів навіть по різному чи різними засобами всередині чи різною послідовністю ключових слів в цих мовах, використовуючи різні ключові слова, подібний "інтерфейс" з проміжними кавово дискусійно мовними ключовими словами чи з перекладаючим асоціацією кавово дискусійно мовних ключових слів між ними допомагає дещо. Недоліком є воно призводить до витрат але воно фіксує технічний борг. 1 < 10.

Я не рахую двічі: 4(чи більше) близько дублікатних подібних проекта для 4 окремих мов кавових дискусій(чи для не мов кавових дискусій) чи 2 подібних перетворювача між 2 окремих таких мов кавових дискусій(чи для мов не кавових дискусій).

Оновлення від 2021-09-26.

Update as of 2021-09-26.

Більшістю описано в публікації https://stackoverflow.com/a/33746682 Sasha Pachev Сашей Пачевим і Community Bot Ком'юніті ботом. Але що я помітив за ці свої стомісяччя навігації у дигітурі, так це дійсно існує подібний тип пошуку зразки якого повторюю , в якому є назва перемикачевої системи і код помилки. Це фактично параметри для його ППІ під час пошуку. Тож той самий код помилки може мати в наявності і зазвичай має різний опис в різних системах. Вони децентралізовані і в різних місцях тобто в такому типі пошуку зазвичай їх знаходжу в різних місцях з різних початкових точок пошуку після навігації у дигітурі чи то в інших веб місцях чи в веб місцях з кодом джерела. Навіть якщо ці пари в одній системі, їх значення можуть змінюватися з часом, система може бути поверх іншої системи і назви систем можуть бути не унікальні в залежності від типу уточнення. Тим самим способом так само ймовірно шукають їх програмні боти в скриптах за невідомим розташуванням наявної централізованої системи з їх парами для систем у деяких ситуаціях. Є погляд що їх, цих пар не має бути, але вони все ж існують. Деякі є незмінними достатньо тривалий проміжок часу. Деякі коди в деяких системах відображають те що в джава java описують як перевірені і неперевірені виключення. Є і інщі ситуації.

Цей тип пошуку за собою знайшов як достатньо виокремлюваний і рутінний. Як і його так зване ППІ в даному випадку. Але існують вирогідно й інщі виокремлювані варіації пошуку в рутінах за собою.

http://thetechawesomeness.ideasmatter.info/tapi.html

http://thetechawesomeness.ideasmatter.info/router-or-navigator.html

Оновлення від 2021-11-19.

Update as of 2021-11-19.

Якщо зібрати деякі особливості для мов програмування. З взаємозамінністю. Така табличка.

If to list some features for programming languages. With interchangeability. Such a table.


                                                             compilable/version;компільовано складаєма/версія          interpretable/version;інтерпретована/версія
for example, a variable after been tied to a type
наприклад, змінна після приєднання до типа

http://thetechawesomeness.ideasmatter.info/table-chapters.html;32.

Оновлення від 2022-04-14.

Update as of 2022-04-14.

At least in java being C like but unlike for example C++ in, there are two keywords try and try-with-resources one of which appeared during its following version by addition to others. That one is interlinked with backward compatibility of different versions of java with different versions of applications which use it. That one is interlinked with computer memory handling as well. ... So there is a mode for more strict and less strict memory handling among at least two keywords . Maybe there are more. To leave that backward compatibility as it is now.

Принаймні у джава java яка Сі C подібна але не схожа на Сі++ C++ у існуванні 2 ключових слів, try та try-with-resources як то спробувати та спробувати-з-ресурсами одне з яких з'явилося пізніше у наступній версії доданням до інших. Те є взаємопов'язано зі зворотньою сумісністю різних версій джава java з різними версіями додатків і застосунків які її застосовують. Те є взаємопов'язано також з розподіленням пам'яті обчислювача. ... Якщо їх більше що і сформує такі 2 групи так існуватиме режим для більш жорсткого і менш жорсткого керування розподілення пам'яті обчислювача принаймні на прикладі цих двох ключових слів. Тому що можливо присутні і інщі. Щоб залишити ту зворотню сумісність як вона є.